首页 > 其他分享 >wpf checkbox控件模板

wpf checkbox控件模板

时间:2023-07-01 22:23:00浏览次数:36  
标签:控件 checkbox grid 选中 wpf border 模板

先看一下上一篇文章:wpf button控件模板。再看此文会更好理解

 

 vs生产的checkbox控件模板有很长,我们直接找到controltemplate标签,和controltemplate.triggers。控件模板都先找这两个地方看一下布局和触发器既可以了。剩下的都是定义的一些资源和样式。

checkbox的控件模板中定义了一个grid,有2列。

1.第一列是一个border,名字叫checkBoxBorder,这个border用来指定checkbox的背景色,边框厚度和颜色

border里面又加了一个grid,grid里面加了path和rectangle。这个path就是checkbox被选中时的√ 

 rectangle是半选中状态下的一个小方框

 path和rectangle是叠加在一起的,通过控制他俩的opacity来控制谁显示谁隐藏。

2.第二列放了一个ContentPresenter,这个是的作用是把checkbox的content的属性放到ContentPresenter里面来,如果不理解,看上一篇博客ContentPresenter的讲解

上面就是checkbox的布局了,然后看一下trigger,当有内容时、鼠标悬浮时、使能、禁用、选中时,改变改变背景色,边框之类的。

 

如果我们想自定义checkbox的控件模板,只需要用好ischecked这个属性就好了,当选中时怎样,未选中时怎样。

下面我们来自定义一个控件模板:效果如下

 把原来的布局都删掉,我们重新写,设置grid有2列,第一列放一个contentpresenter,第二列放一个border,长度是60,在该border中在放一个长度是30的border。设置触发器,当点击是设置名字叫check的border的horizontalalignment的属性,来完成两种不同状态的切换

当ischecked属性为空时,我们让它滑动到中间的位置

 

标签:控件,checkbox,grid,选中,wpf,border,模板
From: https://www.cnblogs.com/1024E/p/17516400.html

相关文章

  • wpf button控件模板
    1.从button的style说起button有很多属性,我们在xaml中定义一个按钮时可以指定button的content、background、height、width等等。这些都是button的属性,而style也不例外也是button的一个属性,只是在给style属性赋值时不能简单的像height=“100”一样简单的设定一个字符串。先看......
  • Qt/C++编写超精美自定义控件(历时9年更新迭代/超202个控件/祖传原创)
    一、前言无论是哪一门开发框架,如果涉及到UI这块,肯定需要用到自定义控件,越复杂功能越多的项目,自定义控件的数量就越多,最开始的时候可能每个自定义控件都针对特定的应用场景,甚至里面带了特定的场景的一些设置和处理,随着项目数量的增多,有些控件又专门提取出来共性,做成了通用的自定义......
  • winform控件开发一之复合控件开发(8)管道(pipe)
    上位机中的管道控件分两种,分别是静态管道和动态管道。静态管道,不显示液体的流动和流动方向,如下所示: 动态管道,可以显示液体的流动速度和流动方向,如下所示: 管道控件的实现方法如下?1、使用label实现一个简单的管道,效果如下: 将label标签的autosize属性设置为false,调整lab......
  • WPF Showdialog与DialogResult的注意事项
    我们知道如果要设置window.Showdialog()的返回值,需要设置window.DialogResult属性。但是设置window.DialogResult属性会自动触发close,如果window.DialogResult属性会触发Window_OnClosing事件privatevoidBtnCancel_Click(objectsender,RoutedEventArgse){......
  • WPF数据绑定UI不更新原因之一
    下面是有问题的代码privateObservableCollection<Params>_values;publicMainWindow(){InitializeComponent();this.dgrid1.ItemsSource=_values;}privatevoidbtnUploadClick(objectsender,RoutedEventArgse){_values=newObservableCollection&......
  • 界面组件DevExpress WPF v23.1新版亮点 - 启动和内存优化
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • Flutter的ClipRRect控件介绍
    ClipRRect简介ClipRRect(RoundedRectangleClip)是Flutter中的一个控件,用于将其子控件剪裁为圆角矩形形状。使用场景ClipRRect通常在需要给子控件添加圆角效果时使用。它可以用于创建圆角图片、圆角容器等各种UI元素。主要属性borderRadius(BorderRadius):用于定义圆角的弧度。可......
  • vxe-table 多选框手动设置选中方法setCheckboxRow(rows,true) 失效问题以及翻页保留选
    现象:rows数组里明明有三个对象,但是只有第一个的复选框选中原因:row-config配置项里需要配置keyField:'id' 翻页保留问题官方有配置项checkbox-config reserve 是否保留勾选状态,对于某些场景可能会用到,比如数据被刷新之后还保留之前选中的状态(需要有row-id)......
  • 1.DevExpress LookUpEdit控件
    //显示两列数据的下拉选择框repositoryItemLookUpEdit1.DataSource=dataTable;repositoryItemLookUpEdit1.ValueMember="id";repositoryItemLookUpEdit1.DisplayMember="name";repositoryItemLookUpEdit1.Co......
  • WPF的六类控件之概述
    在线演示:http://v.youku.com/v_show/id_XNzA0NjU1Mjk2.html清晰版视频+代码下载:http://115.com/lb/5lbcftnrfo9s一、简介本篇让我们一起来了解一下WPF对控件的定义,以及它的六大类控件,分别为:内容控件、带标题的内容控件、条目控件、带标题的条目控件、特殊控件、布局控件。主要内......