Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12402575
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: C#/.net

2016-03-28 11:16:52

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属性实现内置的功能处理,而避免编写对应的态事件处理方法。

下面为一个典型的用法:


  1. <ToggleButton x:Name="BulletsButton" Command="EditingCommands.ToggleBullets" CommandTarget="{Binding ElementName=TextBox}" ToolTip="Bullets" Template="{StaticResource FlatToggleButtonControlTemplate}" Margin="0,1,0,1" Click="OnListButtonClick">
  2.                 <Image Source="Images\listbullets.png" Stretch="None" SnapsToDevicePixels="True" />
  3.             </ToggleButton>


Command="EditingCommands.ToggleItalic"

CodeProject源码参考:

SourceCode.zip

参考:

阅读(6374) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~