ToggleButton和Setter组成WPF的三态控件有时候较为实用。
ToggleButton就像拨动开关一样,把开关拨到一个位置,灯亮了;把开关拨到别一个位置,灯灭了。ToggleButton也是这样,按一下,其IsChecked属性变为True;再按一下,其IsChecked属性变为False。有时,我们需要维持三个状态,这时我们把IsThreeState属性设为True。在IsThreeState属性设为True时,IsChecked的属性值可能取三个值:True,False,Null,ToggleButton中的事件如下:
Checked:当IsChecked为True时,产生该事件。
UnChecked:当IsChecked为False时,产生该事件。
Indeterminate:当IsChecked为Null时,产生该事件。
一般不直接创建创建ToggleButton实例,而是使用其派生类:CheckBox和RadioButton
三态控件常使用Command属性实现内置的功能处理,而避免编写对应的态事件处理方法。
下面为一个典型的用法:
- ToggleButton x:Name="BulletsButton" Command="EditingCommands.ToggleBullets" CommandTarget="{Binding ElementName=TextBox}" ToolTip="Bullets" Template="{StaticResource FlatToggleButtonControlTemplate}" Margin="0,1,0,1" Click="OnListButtonClick">
- Image Source="Images\listbullets.png" Stretch="None" SnapsToDevicePixels="True" />
- /ToggleButton>
Command="EditingCommands.ToggleItalic"
CodeProject源码参考:
参考: