了解WPF控件:ToggleButton和Separator常用属性与用法(十三)

掌握WPF控件:熟练ToggleButton和Separator常用属性(十三)

ToggleButton

  • 一个按钮类UI元素,它的特点是拥有两种状态:选中(Checked)和未选中(Unchecked)。当用户单击ToggleButton时,它会在两种状态之间切换。这种控件常用于开关、复选框样式的行为或者任何需要表示“开/关”、“是/否”等二元状态的场景。
常用属性描述
IsChecked用于获取或设置是否选中 ToggleButton。选中为true,默认为false。
IsThreeState用于设置控件是支持两种状态还是三种状态。当设置为 true,ToggleButton 有三种状态:Checked、Unchecked、Indeterminate。默认为fasle。
Checked选中状态事件,在选中 ToggleButton 时发生。
Indeterminate不确定状态事件,当 ToggleButton 的状态既不打开也不关闭时发生。
Unchecked不选中事件,在未选中 ToggleButton 时发生。
IsEnabled用于设置控件是否可以通过点击来改变其选中状态。默认为true,表示允许。
Content用于设置ToggleButton显示内容的属性。可以是任何有效的WPF内容,如文本、图像等。
  • 下面来写个例子
<Window.Resources><!-- 为ToggleButton创建自定义样式 --><Style TargetType="{x:Type ToggleButton}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type ToggleButton}"><Border Background="{TemplateBinding Background}"BorderBrush="{TemplateBinding BorderBrush}"BorderThickness="{TemplateBinding BorderThickness}"><!--设置内容水平居中和垂直居中--><ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/></Border><!--设置控件模板触发器Triggers--><ControlTemplate.Triggers><!-- 当ToggleButton处于选中状态时改变背景色 --><Trigger Property="IsChecked" Value="True"><Setter Property="Background" Value="Green"/><Setter Property="Foreground" Value="White"/></Trigger><!-- 当ToggleButton处于取消选中状态时改变背景色 --><Trigger Property="IsChecked" Value="False"><Setter Property="Background" Value="Red"/><Setter Property="Foreground" Value="White"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>
</Window.Resources>
<Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition Height="Auto"></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!--设置默认为选中--><ToggleButton Grid.Row="0" IsChecked="True"  Width="230" Height="30" IsEnabled="False" Content="我默认为选中状态,并且禁用不能点击"></ToggleButton><!--有两种状态--><ToggleButton x:Name="myToggleButton" Content="我默认没有被选中"  Grid.Row="1"  Width="230" Height="30" Checked="myToggleButton_Checked" Unchecked="myToggleButton_Unchecked"></ToggleButton><!--开启了三种状态--><ToggleButton   Grid.Row="2" IsThreeState="True"  IsChecked="{x:Null}" Width="230" Height="30" Checked="ToggleButton_Checked" Unchecked="ToggleButton_Unchecked" Indeterminate="ToggleButton_Indeterminate"><TextBlock x:Name="myTextBlock" Text="我现在是不确定状态"/></ToggleButton></Grid>
using System.Windows;namespace WpfCommonControls
{/// <summary>/// ToggleButton.xaml 的交互逻辑/// </summary>public partial class ToggleButton : Window{private bool isComplete = false;public ToggleButton(){InitializeComponent();}private void Window_ContentRendered(object sender, EventArgs e){// 窗体控件加载完成isComplete=true;}private void myToggleButton_Checked(object sender, RoutedEventArgs e){//选中myToggleButton.Content = "我现在被启用了";}private void myToggleButton_Unchecked(object sender, RoutedEventArgs e){//取消选中myToggleButton.Content = "我现在被禁用了";}private void ToggleButton_Checked(object sender, RoutedEventArgs e){//选中myTextBlock.Text = "我现在被启用了";}private void ToggleButton_Unchecked(object sender, RoutedEventArgs e){//取消选中myTextBlock.Text = "我现在被禁用了";}private void ToggleButton_Indeterminate(object sender, RoutedEventArgs e){// 不确定状态if(isComplete)myTextBlock.Text = "我现在是不确定状态";}}
}

ToggleButton

Separator

  • 用于在用户界面(UI)布局中创建可视分隔线的控件。它常用于分隔工具栏中的按钮或菜单中的选项。
常用属性描述
Background用于获取或设置分隔线背景颜色,默认通常是深灰色或者与当前主题相匹配的颜色。
BorderBrush用于获取或设置边框颜色,对于Separator而言,这实际上就是线条颜色。
BorderThickness用于获取或设置分隔线的边框厚度。
  • 下面来写个例子
<Grid><Grid.RowDefinitions><RowDefinition></RowDefinition><RowDefinition></RowDefinition><RowDefinition></RowDefinition></Grid.RowDefinitions><!--设置背景颜色为绿色--><Separator Grid.Row="0" Background="Green"  Width="100"/><!--设置边框颜色和边框线宽度--><Separator Grid.Row="1" BorderBrush="Red" BorderThickness="1"  Width="100" /></Grid>

Separator

公众号“点滴分享技术猿

关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/246337.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用ChatGPT写申请文书写进常春藤联盟?

一年前&#xff0c;ChatGPT 的发布引发了教育工作者的恐慌。现在&#xff0c;各大学正值大学申请季&#xff0c;担心学生会利用人工智能工具伪造入学论文。但是&#xff0c;聊天机器人创作的论文足以骗过大学招生顾问吗&#xff1f; ChatGPT简介 ChatGPT&#xff0c;全称聊天生…

Docker 容器内运行 mysqldump 命令来导出 MySQL 数据库,自动化备份

备份容器数据库命令&#xff1a; docker exec 容器名称或ID mysqldump -u用户名 -p密码 数据库名称 > 导出文件.sql请替换以下占位符&#xff1a; 容器名称或ID&#xff1a;您的 MySQL 容器的名称或ID。用户名&#xff1a;您的 MySQL 用户名。密码&#xff1a;您的 MySQL …

SpringMVC-对静态资源的访问

1.工程中加入静态资源 在webapp下创建static文件夹&#xff0c;此文件夹专门放入静态资源 2.使项目可以处理静态资源的请求 在SpringMVC配置文件中添加以下语句 1.引入命名空间 xmlns:mvc"http://www.springframework.org/schema/mvc" xsi:schemaLocation“http…

npm i 报一堆版本问题

1&#xff0c;先npm cache clean --force 再下载 插件后缀加上 --legacy-peer-deps 2&#xff0c; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz failed, reason…

Nginx编译安装以及负载均衡配置(Ubuntu 22.04)

目录 Nginx编译安装以及负载均衡配置 Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1 1.安装依赖包 2. 下载nginx 3. 编译安装 报错解决 解决问题2 4.安装 5启动Nginx&#xff1a; 负载均衡 负载均衡算法 轮询 加权负载均衡 ip_hash算法 算法进行配置演示 加权负载均衡 轮询 IP 哈希…

活动回顾丨云原生技术实践营上海站「云原生 AI 大数据」专场(附 PPT)

AI 势不可挡&#xff0c;“智算”赋能未来。2024 年 1 月 5 日&#xff0c;云原生技术实践营「云原生 AI &大数据」专场在上海落幕。活动聚焦容器、可观测、微服务产品技术领域&#xff0c;以云原生 AI 工程化落地为主要方向&#xff0c;希望帮助企业和开发者更快、更高效地…

驱动开发-系统移植

一、Linux系统移植概念 需要移植三部分东西&#xff0c;Uboot ,内核 &#xff0c;根文件系统 &#xff08;rootfs&#xff09; &#xff0c;这三个构成了一个完整的Linux系统。 把这三部分学明白&#xff0c;系统移植就懂点了。 二、Uboot uboot就是引导程序下载的一段代…

C# 设置一个定时器函数

C#中&#xff0c;创建设置一个定时器&#xff0c;能够定时中断执行特定操作&#xff0c;可以用于发送心跳、正计时和倒计时等。 本文对C#的定时器简单封装一下&#xff0c;哎&#xff0c;以方便定时器的创建。 定义 using Timer System.Timers.Timer;class SetTimer {Timer …

npm create vue3项目特别慢

问题&#xff1a;Vue CLI v5.0.8在配置了淘宝镜像的情况下&#xff0c;创建项目报Failed to check for updates&#xff0c;还特别慢&#xff0c;等了好久都创建不好 查看 npm config get registry更换npm镜像 npm config set registryhttps://registry.npmmirror.com这样创建…

RC4加密技术探究:优缺点与实战应用

引言 在网络安全领域&#xff0c;加密技术一直是保障数据安全的重要手段。Rivest Cipher 4&#xff08;简称RC4&#xff09;作为一种对称加密算法&#xff0c;自20世纪80年代以来广泛应用于各种网络安全协议中。本文将详细分析RC4加密算法的优缺点以及其在实际应用中解决的问题…

AI大模型开发架构设计(6)——AIGC时代,如何求职、转型与选择?

文章目录 AIGC时代&#xff0c;如何求职、转型与选择&#xff1f;1 新职场&#xff0c;普通人最值钱的能力是什么?2 新职场成长的3点建议第1点&#xff1a;目标感第2点&#xff1a;执行力第3点&#xff1a;高效生产力 3 新职场会产生哪些新岗位机会?如何借势?4 新职场普通人…

ERROR Failed to get response from https://registry.npm.taobao.org/ 错误的解决

这个问题最近才出现的。可能跟淘宝镜像的证书到期有关。 解决方式一&#xff1a;更新淘宝镜像&#xff08;本人测试无效&#xff0c;但建议尝试&#xff09; 虽然无效&#xff0c;但感觉是有很大关系的。还是设置一下比较好。 淘宝镜像的地址&#xff08;registry.npm.taobao…

《30天自制操作系统》 第一周(D1-D7) 笔记

前言&#xff1a;这是我2023年5月份做的一个小项目&#xff0c;最终是完成了整个OS。笔记的话&#xff0c;只记录了第一周。想完善&#xff0c;却扔在草稿箱里许久。最终决定&#xff0c;还是发出来存个档吧。 一、汇编语言 基础指令 MOV: move赋值&#xff0c;数据传送指令…

【重点】【DP】123.买卖股票的最佳时机III

题目 法1&#xff1a;单次遍历&#xff0c;Best! class Solution {public int maxProfit(int[] prices) {int f1 -prices[0], f2 0, f3 -prices[0], f4 0;for (int i 1; i < prices.length; i) {f1 Math.max(f1, -prices[i]);f2 Math.max(f2, f1 prices[i]);f3 Ma…

交叉导轨为何要保持日常清洁?

在工业自动化的发展中&#xff0c;交叉导轨因其具有精度高、高刚性、高耐磨性等特点&#xff0c;在数控技术的发展中得到了越来越多的使用&#xff0c;对于交叉导轨来说&#xff0c;保持日常清洁对其性能和寿命具有重要意义。 1、防止灰尘和杂质的侵入&#xff1a;交叉导轨在机…

保姆级教学:Java项目从0到1部署到云服务器

目录 1、明确内容 2、apt 2.1、apt 语法 2.2、常用命令 2.3、更新apt 3、安装JDK17 4、安装MySQL 4.1、安装 4.2、检查版本及安装位置 4.3、初始化MySQL配置⭐ 4.4、检查状态 4.5、配置远程访问⭐ 4.6、登录MySQL 4.7、测试数据库 4.8、设置权限与密码⭐ 5、安…

『OpenCV-Python|鼠标作画笔』

Opencv-Python教程链接&#xff1a;https://opencv-python-tutorials.readthedocs.io/ 本文主要介绍OpenCV-Python如何将鼠标作画笔绘制圆或者矩形。 示例一&#xff1a;图片上双击的位置绘制一个圆圈 首先创建一个鼠标事件回调函数&#xff0c;鼠标事件发生时就会被执行。鼠标…

【代码随想录-数组】移除元素

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

多维时序 | Matlab实现CNN-BiGRU-Mutilhead-Attention卷积双向门控循环单元融合多头注意力机制多变量时间序列预测

多维时序 | Matlab实现CNN-BiGRU-Mutilhead-Attention卷积双向门控循环单元融合多头注意力机制多变量时间序列预测 目录 多维时序 | Matlab实现CNN-BiGRU-Mutilhead-Attention卷积双向门控循环单元融合多头注意力机制多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一…

element+vue 之 v-limit 按钮操作权限

1.新建一个permission.js文件 import store from /storeexport default {inserted: function (el, binding) {const { perms: limits } store.state.userconst { value: params } bindingif (!limits.length) returnif (params && Array.isArray(params)) {if (!limi…