单选框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>

如图:

标记很好用,上面的例子看起来很繁琐,但是要表达的概念很简单。每个单选框我们都使用一个WrapPanel来放置一张图片和一段文字。这里我们用了文本块控件来控制文字的显示,还可以用其他任何形式来展示。在这里我改变了文字的颜色来匹配选择。图片通过图片控件来显示。

注意你只要点击单选框的任何地方,不管是图片还是文字,都可以选中它。这是因为图片和文字都是单选框的内容。如果你在单选框旁边放置一个单独的容器,用户就必须去点击单选框中的小圆圈才能生效,这是非常不切实际。

最新文章

  1. loadrnner添加C语言代码的几种方式
  2. DoModal时带出次级窗口闪现
  3. 【001:C# 中 get set 简写存在的陷阱】
  4. 解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
  5. Ajax请求ashx一般处理程序实现文件下载
  6. iOS把两张图片合成一张图片
  7. 【示例代码】HTML+JS 画图板源码分享
  8. POJ 1330 Nearest Common Ancestors(Tarjan离线LCA)
  9. ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络
  10. 在项目管理工具Redmine中使用SubVersion进行版本管理
  11. 如何创建一个要素数据类 IField,IFieldEdit,IFields,IFieldsEditI,GeometryDef,IGeometryDefEdit接口
  12. Vuex 最简单的数量增减实例
  13. Eureka restTemplate访问超时
  14. 解析JavaScrip之对象属性
  15. oracle_hc.sql
  16. Linux下 文件操作(base)
  17. static在类中的功能
  18. loadrunner&#160;脚本开发-参数化之将内容保存为参数、参数数组及参数值获取Part&#160;2
  19. 使用ember-cli脚手架快速构建项目
  20. 软件工程-东北师大站-第八次作业(PSP)

热门文章

  1. jquery 点击某一行,得到这一行的每个列的数据
  2. http协议之版本差异(2)
  3. Spring Boot 学习系列(04)—分而治之,多module打包
  4. P3803 【模板】多项式乘法(NTT)
  5. rsync 同步的艺术
  6. Mysql | 总结 | 常用的查询语句(单表查询)
  7. VLAN-2-私有VLAN
  8. python元组,列表,字典练习
  9. ZROI #364. 【2018普转提day18专题】嘤嘤嘤
  10. 17995 Stupid thief 组合数学