Főoldal » WPF Speciális konténerek 2. rész – GroupBox,TabItem

WPF Speciális konténerek 2. rész – GroupBox,TabItem

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

A Windows Presentation Foundation content controljainak bemutatása a fejléccel rendelkező konténerekel folytatódik. A következőkben a GroupBox, TabItem és Expander vezérlők működését és legfontosabb tulajdonságait tekintjük át.

A ContentControl osztály egyik leszármazottja a HeaderedContentControl osztály. Egy konténert reprezentál, ami egy elemet tartalmaz a Content property-jében, valamint egy elemet a Header property-jében. Három osztály létezik, ami a HeaderedContentControl osztályból származik: GroupBox, TabItem, Expander. 

GroupBox

A GroupBox a legegyszerűbb vezérlő a három közül. Egy lekerekített sarkú dobozként jelenik meg, ami egy fejléccel rendelkezik. A fejléc szövegét a GroupBox Header tulajdonságában lehet magadni. Egy egyszerű példa:


    
          Bankkártya
          Banki átutalás
          PayPal
          
    

Érdemes megfigyelni, hogy a GroupBoxon belül szükséges elhelyezni egy layout konténert (például StackPanel), hogy a tartalmának elrendezését jobban testre lehessen szabni. A GroupBoxot gyakran használják összetartozó vezérlők csoportosítására, mint például radio gombok csoportja. Nincs beépített funkcionalitása, így a GroupBox tetszőlegesen használható a felhasználói felület kialakítása során. (Radio gomb csoportok létrehozhatók bármely egyéb panelre való elhelyezéssel is, nem feltétlenül szükséges a GroupBox használata)

TabItem

A TabItem vezérlő egy lapot képvisel egy TabControl vezérlőben. A TabItem rendelkezik egy IsSelected nevű tulajdonsággal, ami meghatározza, hogy az adott lap aktuálisal látható-e a az adott TabControl vezérlőben. Az alábbi példa egy két lapból álló TabControlt hoz létre:


    
          
               Félkövér
               Dőlt
               Aláhúzott
          

    

    
          …
    

Hasonlóan a Content property-hez a Header property is képes bármilyen típusú objektum tárolására. Ez azt jelenti, hogy létre tudunk hozni egy GroupBoxot vagy egy TabItemet grafikai tartalommal, vagy bármilyen egyéb vezérlővel a fejlécében. Az alábbi példában egy képet helyeztem el a TabItemek fejlécében.


    
          
              
                    
                    Betűstílus
              

          

          
               Félkövér
               Dőlt
               Aláhúzott
          

    

    
          
              
                    
                    Betűszín
              

          

    

Expander

A legkülönlegesebb HeaderedContentControl az Expander. A felhasználói felület egy meghatározott részét tartalmazza, amelyet a felhasználó egy kis nyíllal be tud csukni és ki tud nyitni. Ezt a tachnikát gyakran használják online súgók esetén, valamint olyan internetes honlapokon, ahol a nagy mennyiségű adatot el szeretnék rejteni a felhasználók elől. Csak azok olvashassák, akik lenyitják az Expander vezérlőt. Az Expander vezérlő használata nagyon egyszerű, meg kell határozni az összecsukható panelben elhelyezendő tartalmat. Az Expander alapértelmezésben összecsukva jelenik meg, de ez beállítható az isExpanded tulajdonságon keresztül. A követlező kód három Expander vezérlőt tartalmaz, amelyek különböző vezérlőket jelenítenek meg.


    
          
    

    
          
          Az alklalmazás használata közben fellépő problémák esetén…
          

    

    
          
              
              
        

    

Az Expander használatakor kiválasztható az irány, amerre a vezérlő a tartalmát “kinyitja”. Alapértelmezésben lefelé, de ez a tulajdonság is beállítható az ExpandDirection property-ben. Lehetséges értékei: le, fel, jobbra, balra. Az összecsukott Expander gombján a nyíl mindig a nyitás irányába mutat.

Ha egyéb vezérlőket szinkronizálni kell az Expander vezérlővel, akkor az Expanded és a Collapsed eseményeket kell kezelni. A nevükkel ellentétben ezek az események a tartalom megjelenése, illetve eltűnése előtt futnak le. Ez megfelelő segítséget nyújthat a késleltetett betöltés (lazy load) megoldására. Például, ha egy Expander tartalmát költséges előre létrehozni, akkor lehetőség van csak a megjelenítéskor betölteni azt.

 

Forrás: Pro WPF in C# 2008

Írta: Sallai Máté

 

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

HOZZÁSZÓLÁS

Ha nem hagy nyugodni az, amit a cikkben olvastál, akkor nyugodtan írd meg kérdésed vagy észrevételed kommentbe. Így szerzőnk könnyen tud neked válaszolni.

Vélemény, hozzászólás?