W dzisiejszym odcinku zaczniemy przyglądać się zagadnieniu zwanemu Content control.
Wśród tych kontrolek znajdziemy grupy takie jak:
- przyciski (buttons)
- proste kontenery (containers)
- kontenery z nagłówkiem (Containers with a header)
Przyciski (buttons)
Przyciski to chyba podstawowe kontrolki mające zawartość. Wszystkie przyciski wywodzą się z klasy ButtonBase, która definiuje takie rzeczy jak zdarzenie Click, właściwość IsPressed oraz ClickMode. Ta ostatnia właściwość określa kiedy zdarzenie Click jest wywołane. Możliwe wartości to Release (domyślna wartość), Press oraz Hover.
Przyciski, które mamy w tej grupie to:
- Button
- RepeatButton
- ToggleButton
- CheckBox
- RadioButton
Button
Przycisk (Button) prócz wymienionych powyżej właściwości posiada także: IsCancel oraz IsDefault. Ich znaczenie jest, gdy okno na którym są umieszczone pokazujemy za pomocą metody ShowDialog, wtedy przycisk z ustawioną właściwością IsCancel na true jako rezultat zwróci false
RepeatButton
To taki ciekawy nowy przycisk, który został dodany do WPF’a. Znajduje się on (w przeciwieństwie do pozostałych) w przestrzeni nazw System.Windows.Controls.Primitives, gdyż jest raczej przeznaczony do użycia wewnątrz innych kontrolek, niż użyta bezpośrednio. Całe działanie tego przycisku opiera się o właściwości Delay oraz Interval
Pierwsze z nich, określa jak długi jest czas pomiędzy pierwszym a drugim kliknięciem. Drugi ile czasu ma być pomiędzy wywołaniem zdarzenia Click dla kolejnych przyciśnięć.
ToggleButton
Ten przycisk trzyma stan tego czy został naciśnięty czy też nie. Pierwsze kliknięcie na taki przycisk przestawia stan właściwości IsChecked na true, kolejne na false. Jest ustawimy właściwość IsThreeState na true, sekwencja będzie inna: true, null, false. ToggleButton podobnie jak RepeatButton egzystuje w przestrzeni: System.Windows.Controls.Primitives
CheckBox
CheckBox to w WPF także przycisk Dokładniej ToggleButton z zaaplikowanym innym wyglądem. Nic dodać nic ująć.
RadioButton
RadioButton to ponownie ToggleButton ze zmienionym wyglądem i dodaną funkcjonalnością zaznaczenie tylko 1 elementu z wielu. Grupowanie RadioButtonów odbywa się poprzez ustawienie właściwości GroupName. Grupować można, także pomiędzy różnymi kontenerami, tak długo jak logiczny korzeń jest ten sam. W takim przykładzie:
<Window x:Class=”WpfExamDemo.Window1″
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
Height=”300″ Width=”300″>
<StackPanel>
<StackPanel>
<RadioButton GroupName=”Group1″>Opcja 1RadioButton>
<RadioButton GroupName=”Group1″>Opcja 2RadioButton>
<RadioButton GroupName=”Group1″>Opcja 3RadioButton>
StackPanel>
<StackPanel>
<RadioButton GroupName=”Group1″>Opcja 4RadioButton>
<RadioButton GroupName=”Group1″>Opcja 5RadioButton>
StackPanel>
StackPanel>
Window>
Wszystkie 5 RadioButtonów należy do tej samej grupy i zatem tylko jeden z nich może być w danej chwili zaznaczony.
W następnym odcinku o prostych kontenerach typu Label, ToolTip Frame.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl