最近需要使用该控件做一个选择,顺便温习一下该控件的基本使用方法。

示例1:

<StackPanel Margin="10"><Label FontWeight="Bold">请选择:</Label><CheckBox>Python</CheckBox><CheckBox IsChecked="True">Advance C#</CheckBox><CheckBox>Prime C++</CheckBox></StackPanel>

IsChecked属性为True时,被选中。

示例2:

CheckBox 继承自内容控件,意味可以使用自定义显示的内容。

<StackPanel Grid.Column="1" Margin="10"><Label FontWeight="Bold">请选择:</Label><CheckBox><TextBlock><Run Foreground="Green" FontWeight="Bold">Python</Run>Crash Course</TextBlock></CheckBox><CheckBox IsChecked="True"><WrapPanel><TextBlock>Help for Programmers <Run FontWeight="Bold"> C# 8.0 Pocket Reference</Run></TextBlock><Image Source="Images/question.png" Width="16" Height="16" Margin="5,0" /></WrapPanel></CheckBox><CheckBox><TextBlock>Beginning Through<Run Foreground="Blue" TextDecorations="Underline" FontWeight="Bold">C++ </Run>Game Programming</TextBlock></CheckBox></StackPanel>

在三个复选框上,我对文本做了不同的处理,在中间的一个加入了一个 Image 控件。通过将控件指定为内容,而不仅仅是文本,我们可以更好地控制外观,无论您单击内容的哪个部分,它都会激活 CheckBox 并打开或关闭它.

示例3:

IsThreeState 属性。CheckBox 通常对应一个布尔值,这意味着它只有两种状态:真或假(开或关)。但是,由于布尔数据类型可能为空,有效地允许第三个选项(真、假或空),CheckBox 控件也可以支持这种情况。通过将 IsThreeState 属性设置为 true,CheckBox 将获得称为“不确定状态”的第三种状态。

<StackPanel Margin="10" Grid.Row="1" Grid.Column="0"><Label FontWeight="Bold">请选择:</Label><StackPanel Margin="10,5"><CheckBox IsThreeState="True" Name="cbAllFeatures" Checked="cbAllFeatures_Checked" Unchecked="cbAllFeatures_Unchecked">Enable all</CheckBox><StackPanel Margin="20,5"><CheckBox Name="cbFeatureAbc" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Python</CheckBox><CheckBox Name="cbFeatureXyz" IsChecked="True" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Advance C#</CheckBox><CheckBox Name="cbFeatureWww" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Prime C++</CheckBox></StackPanel>
</StackPanel>
</StackPanel>
  private void cbFeature_CheckedChanged(object sender, RoutedEventArgs e){cbAllFeatures.IsChecked = null;if ((cbFeatureAbc.IsChecked == true) && (cbFeatureXyz.IsChecked == true) && (cbFeatureWww.IsChecked == true))cbAllFeatures.IsChecked = true;if ((cbFeatureAbc.IsChecked == false) && (cbFeatureXyz.IsChecked == false) && (cbFeatureWww.IsChecked == false))cbAllFeatures.IsChecked = false;}private void cbAllFeatures_Checked(object sender, RoutedEventArgs e){bool newVal = (cbAllFeatures.IsChecked == true);cbFeatureAbc.IsChecked = newVal;cbFeatureXyz.IsChecked = newVal;cbFeatureWww.IsChecked = newVal;}

示例4:

动态添加CheckBox

<StackPanel Grid.Row="1" Grid.Column="1" Margin="5" x:Name="sp4"><CheckBox Name="McCheckBox1"  Content="Check Me" IsChecked="True" IsThreeState="True" ></CheckBox><CheckBox Name="McCheckBox" Content="Check Me" IsChecked="True" IsThreeState="True" Checked="McCheckBox_Checked"  Unchecked="McCheckBox_Unchecked"></CheckBox><Button  x:Name="btnDynamicAdd" Click="btnDynamicAdd_Click" Margin="5">Dynamic Add</Button></StackPanel>

后台代码

 private void McCheckBox_Checked(object sender, RoutedEventArgs e){McCheckBox.Content = "Checked";}private void McCheckBox_Unchecked(object sender, RoutedEventArgs e){McCheckBox.Content = "Unchecked";}private void CreateDynamicCheckBox(){CheckBox chb = new CheckBox();chb.Content = "Click me";chb.IsChecked = true;chb.Foreground = new SolidColorBrush(Colors.Orange);chb.IsChecked = true;sp4.Children.Add(chb);}private void btnDynamicAdd\_Click(object sender, RoutedEventArgs e){CreateDynamicCheckBox();}

WPF 中的CheckBox相关推荐

  1. WPF中触发器Trigger、MultiTrigger、DataTrigger、MultiDataTrigger、EventTrigger几种

    WPF中有种叫做触发器的东西(记住不是数据库的trigger哦).它的主要作用是根据trigger的不同条件来自动更改外观属性,或者执行动画等操作. WPFtrigger的主要类型有:Trigger. ...

  2. 了解 WPF 中的路由事件和命令

    目录 路由事件概述 WPF 元素树 事件路由 路由事件和组合 附加事件 路由命令概述 操作中的路由命令 命令路由 定义命令 命令插入 路由命令的局限 避免命令出错 超越路由命令 路由处理程序示例 要想 ...

  3. 关于WPF中Popup中的一些用法的总结

    原文:关于WPF中Popup中的一些用法的总结 Popup控件是一个常用的非常有用的控件,顾明思义就是弹出式控件,首先我们来看看MSDN对它的解释吧,表示具有内容的弹出窗口,这个是非常重要的控件,我们 ...

  4. WPF中改进自定义Command一些想法

    Command来源于Command命令模式,Command模式它封装的是命令,把命令发出者的责任和命令执行者的责任分开,直白的说为了调用与具体实现解耦.关于理论俺向来是不擅长的,而且各位达人的文章也已 ...

  5. WPF中关于对前台Xaml中Triggers的一些重要思考。

    原文:WPF中关于对前台Xaml中Triggers的一些重要思考. 今天在做一个小Demo的时候碰到了一个比较奇怪的问题,就是其中一个Trigger始终无法执行,<Trigger Propert ...

  6. WPF中的MatrixTransform

    WPF中的MatrixTransform                                                                              周银 ...

  7. WPF中ControlTemplate和DataTemplate的区别

    原文:WPF中ControlTemplate和DataTemplate的区别 下面代码很好的解释了它们之间的区别: <Window x:Class="WPFTestMe.Window1 ...

  8. WPF中获取鼠标相对于桌面位置

    原文:WPF中获取鼠标相对于桌面位置 var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFr ...

  9. WPF中StringFormat的用法

    原文:WPF中StringFormat的用法 WPF中StringFormat的用法可以参照C#中string.Format的用法 1. C#中用法: 格式化货币(跟系统的环境有关,中文系统默认格式化 ...

最新文章

  1. python多条件排序
  2. 【CyberSecurityLearning 47】PHP 数组
  3. lodash 数组元素查找 findIndex
  4. Python小白的数学建模课-06.固定费用问题
  5. 分布式系统面试 - 常见问题
  6. CentOS 6下安装nodejs 0.9.0
  7. KaimingInit论文的译读笔记
  8. [转]EVC++开发实例之浏览器窗口(by fllsoft)
  9. Lightroom Classic 教程,如何将照片从 Lightroom 移至Ps,在 Ps 中为照片应用滤镜?
  10. 网站敏感词过滤的实现(附敏感词库)
  11. visual studio fatal error C1083: 无法打开源文件
  12. 如何用matlab绘制心形线,心形线的matlab程序
  13. 67. 把字符串转换成整数
  14. matlab中figure的坐标轴label、title、xticklabel的旋转
  15. excel 简单制作数据透视表
  16. C语言剖析OC的rangeOfString方法
  17. 腾讯面试题: 百度搜索为什么那么快?
  18. 魔兽怀旧服务器维护副本是否重置,魔兽世界怀旧服副本重置时间 魔兽世界怀旧服副本重置时间详解...
  19. 大学计算机思维编程题及答案,学编程必看:10道逻辑思维测试题(附答案)
  20. 算法系列之十七:日历生成算法-中国公历(格里历)(下)

热门文章

  1. 八路抢答器c语言程序,八路抢答器-51单片机(附Proteus仿真、C代码、原理图及PCB、论文和元器件清单)...
  2. 基于Multisim的八路抢答器的设计与仿真-设计资料
  3. 上海交大鸿蒙系统,稳了!华为聘巨星自研鸿蒙系统,现任上海交通大学教授
  4. chatGPT背后的男人们
  5. [06 - 02] 难句 - conversation - lecture - tpo9p1
  6. 数据结构与算法(收获)
  7. 怎样预测技术的市场发展节奏?
  8. 粒子动态背景--在Vue3中使用VueParticles
  9. 如何学习一门编程语言(转载)
  10. Excel教程:数值为0不显示的三种解决方法介绍,你都知道哪些?