WPF中单选框RadioButton
单选框RadioButton的基本使⽤:
<StackPanel Margin="10">
<Label FontWeight="Bold">Are you ready?</Label>
<RadioButton>Yes</RadioButton>
<RadioButton>No</RadioButton>
<RadioButton IsChecked="True">Maybe</RadioButton>
</StackPanel>
如图:
其中Radio Button中的IsChecked属性为True时,时设置默认选中,⽤户点击另外两个中的⼀个就可以改变这个属性。这个属性也⽤在后台代码中,来检查⼀个单选框是否被选中。
单选框组的⽤法:
运⾏上⾯的例⼦,你会发现只能有⼀个单选框被选中。那么,如果你同时有好⼏组单选框,每组都有其⾃⼰的选项,如何来选
呢?GroupName属性正是⽤在这种情况下,蕴蓄你哪⼏个单选框是⼀起的。
<StackPanel Margin="10">
<Label FontWeight="Bold">Are you ready?</Label>
<RadioButton GroupName="ready">Yes</RadioButton>
<RadioButton GroupName="ready">No</RadioButton>
<RadioButton GroupName="ready" IsChecked="True">Maybe</RadioButton>
<Label FontWeight="Bold">Male or female?</Label>
<RadioButton GroupName="sex">Male</RadioButton>
<RadioButton GroupName="sex">Female</RadioButton>
<RadioButton GroupName="sex" IsChecked="True">Not sure</RadioButton>
</StackPanel>
如图:
使⽤GroupName属性来设置单选框类别,分成了两组。如果没有这个属性,那么这六个单选框只能选中⼀个。
⽤户内容:
和复选框⼀样,单选框也是继承于ContentControl基类,能够放置⽤户内容并在旁边显⽰。如果你只是定义了⼀串⽂字,那么WPF会⾃动⽣成⼀个⽂本块来显⽰它们。除了⽂字,你还可以放置各种控件到⾥⾯,如下⾯的例⼦:
Xaml:
<StackPanel Margin="10">
<Label FontWeight="Bold">Are you ready?</Label>
<RadioButton>
<WrapPanel>
<Image Width="16" Height="16" Margin="0,0,5,0" Source="Resources/timg (8).jpg" />
<TextBlock Text="Yes" Foreground="Green" />
</WrapPanel>
</RadioButton>
<RadioButton Margin="0,5">
<WrapPanel>
<Image  Width="16" Height="16" Margin="0,0,5,0" Source="Resources/timg (8).jpg"  />
<TextBlock Text="No" Foreground="Red" />
</WrapPanel>
</RadioButton>
<RadioButton IsChecked="True">
<WrapPanel>
<Image  Width="16" Height="16" Margin="0,0,5,0" Source="Resources/timg (8).jpg" />
<TextBlock Text="Maybe" Foreground="Gray" />
</WrapPanel>
</RadioButton>
</StackPanel>
如图:fontweight取值
标记很好⽤,上⾯的例⼦看起来很繁琐,但是要表达的概念很简单。每个单选框我们都使⽤⼀个WrapPanel来放置⼀张图⽚和⼀段⽂字。这⾥我们⽤了⽂本块控件来控制⽂字的显⽰,还可以⽤其他任何形式来展⽰。在这⾥我改变了⽂字的颜⾊来匹配选择。图⽚通过图⽚控件来显⽰。
注意你只要点击单选框的任何地⽅,不管是图⽚还是⽂字,都可以选中它。这是因为图⽚和⽂字都是单选框的内容。如果你在单选框旁边放置⼀个单独的容器,⽤户就必须去点击单选框中的⼩圆圈才能
⽣效,这是⾮常不切实际。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。