Kezeljük a görgetősávot

Első pillantásra a görgetősávok elemei nagyon egyszerűnek tűnnek, de nemrég fedeztem fel, hogy szükségleteimhez a .NET-ben végrehajtott módosítások kisebb módosításokat igényelnek. Úgy döntöttem, hogy egy kis tesztalkalmazást írok le ennek az elemnek a tanulmányozására, és különösen, hogy a tulajdonságok különböző beállításai befolyásolják az alkalmazás külső és funkcionális oldalát.
  • Demo projekt letöltése - 8,23 kb

Kezeljük a görgetősávot

belépés

Néhány szó a cikkben:

"Oldal görgetése": - amikor a dokumentum látható részének (kép stb.) Tartalmát az aktuális töredék azonos méretű tartalmának következő részével helyettesítik. Például a dokumentum látható része 20 sornyi szövegre korlátozódik, majd a lefelé mutató nyílra kattintva megjelenik a következő 20 sornyi szöveg.

"Scrollbar" - az orosz változatban a "Scrollbar". Azok számára, akik a tartályban vannak: a görgetősávok általában két szalag az ablak szélén (az egyik vízszintes alatt, a másik függőleges a jobb oldalon). A "görgetősáv" a következő elemekből áll:
  • A "track" része a görgetősávnak, amely egy szalag (aki másképp gondolt volna :)), amely a dokumentum lineáris méretét (szélességét vagy magasságát) szimbolizálja.
  • Két gomb nyíllal (nyílgombokkal) a csík mindkét végéről. Ez általában két gomb, azonban az összes ismert Wordben négy van (kivéve az oldal görgetését, a fejlesztők hozzáadták a gombokat a "dokumentum elejére" és "a dokumentum végére").
  • "Slider" (hüvelykujj)

"Thumb" (hüvelykujj) - a görgetősáv mozgó része, négyszög formájában. A dokumentum tetszőleges helyének elérésére szolgál. A helymeghatározás pontossága a szem pontosságától és a felhasználó kezének keménységétől függ.

Az "aloldal" az, ami kívül esik a dokumentum látható részén.

Hogyan működik a ScrollBar?

A gördítősávon három olyan dolog van, amelyet normál esetben testreszabáskor használ:

  • „Rotor” (thumb) úgy, hogy megjeleníti az arány a látható része a dokumentumot a teljes mérete a dokumentum, amely jelképezi a magassága a szalag (vagy szélessége esetén a vízszintes görgetősávot). (Kb. Translation. Más szavakkal, a nagyobb dokumentum, a kevésbé magától „csúszik”. A magasság (szélesség) a görgetősáv jelenti a 100% a magasság (szélesség) a dokumentum, egy „csúszka” dimenzió a százalékos aránya a látható dokumentum rész tekintetében a teljes dokumentum. )
  • A görgetősáv beállítása úgy, hogy a dokumentum helyesen gördüljön, amikor a felhasználó a "sávra" kattint.
  • A gördítőpálca megfelelő beállítása, hogy megfelelően módosíthassa a "aloldal" változásokat, amikor a felhasználó áthelyezi a hüvelykujját, vagy a gördítősáv mindkét végén erre a célra használja a nyílgombokat.

Mindez elég egyszerű ahhoz, hogy a .NET-ben a következő tulajdonságokkal működjön:

  • A LargeChange meghatározza a dokumentum látható részének méretét - az "oldal" méretét.
  • Maximum határozza meg a dokumentum teljes méretét.

E két tulajdonság beállítása a görgetősávhoz képest fontos annak érdekében, hogy a "csúszka" dimenziói tükrözzék az "oldal" látható részének arányát és a dokumentum megfelelő méretét (szélességét vagy magasságát). A következő képlet bemutatja a "LargeChange to Maximum" és a "Thumb Length" hosszát a gördítősáv hosszához viszonyítva (itt a hosszúságnak a dimenzió, szélesség vagy magasság befolyásolása érdekében):

Ennek eredményeképpen, amikor a felhasználó rákattint a szalagra, a görgetősáv értékének értéke a LargeChange értékére változik (vagyis átfordul).

Oldalsó lapozás

mivel most már nem definiálhatom "egymás után" (a sorozat kisebb összetevőkre való felosztása értelmében) a SmallChange (ez a tulajdonság az int típusú). Ehelyett írtam valamit, mint a következőket:

De ez rossz szerencsét. Most a "csúszka" már nem arányos a dokumentum látható részével ("oldal")! Most a "csúszka" a teljes dokumentumhoz egy sor és az egész dokumentum közötti arányt tükrözi, nem pedig egy "oldalt" az egész dokumentumhoz. Mivel ez bizonyos mértékben befolyásolja az alkalmazás funkcionalitását, lehetetlen mérni egy ilyen "torzító" vizuális vonatkozással.

Ebből a helyzetből a GreatChange partíció (amely a "csúszka" megfelelő méretének beállítására szolgál) és az aktuális értékváltozás. amikor a felhasználó rákattint a "track" -re. Ez a WndProc módszer túlterhelésével érhető el, és az "oldal" fel / le görgetésével kapcsolatos üzenetek lehallgatásával érhető el :

Ez vezérli az alapértelmezett görgetősáv viselkedését és megváltoztatja az érték értékét. a kedvenc értékem görgetéséhez (a ValLargeChange tulajdonsághoz).

következtetés

Ezt a különbséget láthatod a demo alkalmazás "fellépésében". Ne feledje, hogy ez a kód nem tökéletes, de fő célja annak a problémának a vizsgálata, amellyel "tökéletesen" szembesül.