Programozás III. Felhasználóifelület-elemek fontosabb tulajdonságai, eseményei, metódusai Preview események
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Input (főként System.Windows.UIElement őstől) Visibility, IsVisible – Láthatóság Focusable, IsFocused – Fókuszálhatóság (billentyűzet inputot fogadhat) IsHitTestVisible – Eltalálhatóság (egérrel vagy más eszközzel) IsEnabled – Engedélyezett-e vele a felhasználói interakció? „szürkítés” AllowDrop – Drag&Drop inputot képes-e fogadni? CommandBindings – Parancs inputok, amelyeket fogadhat (később) IsTabStop, TabIndex – Tab-bal rá lehet-e váltani (System.Windows.Controls.Control)
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Input (főként System.Windows.UIElement őstől) IsMouseOver – Fölötte van-e az egér? IsMouseCaptured – Ez kapja-e az egérről jövő inputot? AreAnyTouchesOver, …Captured … IsStylusOver, …Captured … CaptureMouse(), CaptureStylus(), CaptureTouch() – Az adott felhasználóifelület-elem kapja az összes, adott beviteli eszközről érkező inputot (függetlenül a beviteli eszköz helyzetétől) ReleaseMouseCapture(), ReleaseStylusCapture(), ReleaseTouchCapture() – Előző kikapcsolása Focus() – Ide érkezzen a billentyűzet input
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Input (főként System.Windows.UIElement őstől) KeyDown KeyUp MouseDown, MouseLeftButtonDown, MouseRightButtonDown … MouseUp, MouseLeftButtonUp, MouseRightButtonUp … MouseEnter MouseLeave MouseMove MouseWheel MouseDoubleClick (System.Windows.Controls.Control) További input események: Touch hasonló eseményei (Touch…), Stylus hasonló eseményei (Stylus…) Drag&drop (Drag…) Eseményeket elsütő, kezelőt hozzáadó, eltávolító függvények RaiseEvent(), AddHandler(), RemoveHandler()
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Betöltődés (főként System.Windows.FrameworkElement őstől) Initialized – Az elem konstruktora lefutott, tulajdonságai kezdőértéket kaptak Loaded – Az elem teljes betöltése befejeződött (az előzőkön kívül még más tevékenységek is befejeződtek) IsInitialized, IsLoaded
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Alapvető kinézet (főként System.Windows.FrameworkElement őstől) (Max/Min/-)Height, (Max/Min/-)Width – szélesség, magasság Margin – külső margó Padding – belső margó (System.Windows.Controls.Control) Triggers – triggerek: felhasználói tevékenységre válaszul tulajdonságok értékét állítják Language – nyelvbeállítás lokalizációhoz BringIntoView() – láthatóvá tétel (pl. ha kiscrollozódott)
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Fejlett kinézet (főként System.Windows.Controls.Control őstől) Background, Foreground BorderBrush, BorderThickness FontFamily, FontSize, FontStretch, FontStyle, FontWeight HorizontalContentAlignment/VerticalContentAlignment Template – a vezérlő kinézetét meghatározó objektum. Template hiányában a fenti tulajdonságoknak nincs funkciója. (Alapértelmezett template természetesen minden látható Controlnál van.)
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Tartalom (ContentControl őstől) Content – tartalom HasContent – van-e tartalom? ContentStringFormat, ContentTemplate – tartalom kinézete
UI-elemek fontosabb tulajdonságai, metódusai, eseményei Tartalom (ItemsControl őstől) Items, ItemsSource – elemek HasItems – vannak-e elemek? ItemStringFormat, ItemTemplate – elemek kinézete Továbbiak: csoportosítás, elemek felváltva különböző kinézetet kapjanak stb. IsTextSearchEnabled, IsTextSearchCaseSensitive – elemek szűrése gépeléssel
UI-elemek tulajdonságai, metódusai, eseményei Természetesen az ősökön kívül maguk az osztályok is definiálnak ilyeneket Pl: Button: Click esemény – kattintás történt TextBox: Text TextBox: LineCount – sorok száma TextBox: SelectionStart, SelectionLength, SelectedText – szelekcióval kapcsolatos tulajdonságok TextBox: GetLineLength(), GetLineText(), ScrollToLine() – sorokat kezelő függvények TextBox: Select(), Clear()… – kijelölés, törlés RadioButton: GroupName – csoportnév: ez határozza meg azokat a rádiógombokat, amik nem jelölhetők ki egymás mellett …
Preview események Az UI-elemek eseményei ún. továbbított események (később tárgyaljuk) Bizonyos események, pl.: KeyDown KeyUp MouseDown MouseUp … … rendelkeznek egy Preview… nevű párral PreviewKeyDown PreviewKeyUp PreviewMouseDown PreviewMouseUp
Preview események A Preview… pár az adott esemény „tényleges” megtörténte előtt fut le Használati módjai: Eseményt megelőző tevékenységek elvégzése „Tényleges” esemény blokkolása (e.Handled) Léteznek kivételek a Preview→tényleges sorrend alól, pl: Button eseményei A Button „feladata” egy Click esemény létrehozása, a PreviewMouseDown-t és …Up-ot konvertálja Click eseménnyé és blokkolja a további események egy részét (= nem fog lefutni a PreviewMouseDown után a MouseDown pár) private void textBoxText_PreviewKeyDown(object sender, KeyEventArgs e) { e.Handled = true; //eredmény: nem lehet gépelni a textboxba }
Feladat