WPF 深入理解六、ControlTemplate控件模板

ControlTemplate

定义

控件模板用于来定义控件的外观、样式,还可通过控件模板的触发器(ControlTemplate.Triggers)修改控件的行为、响应动画等。

  • 对与WPF当中,每个控件都是无外观的,这意味着我们可以完全自定义其可视元素的外观,但是不能修改其内部的行为,因为控件的行为已经被固定在控件的具体类中。

  • 在Winform当中,你会发现,控件的外观与行为都被固定在控件的具体类中,当我们想要修改按钮的的边框弧度、或者修改控件本身一些细节的时候,我们需要修改外观的同时,把原来具备的所有行为重写一遍,我们大多数称之为自定义控件。

Sytle只能操控已有的属性,控件模板可以修改元素的构成。比如Button可以设定里面有多个TextBox

示例

首先创建一个button 按钮

打开文本大纲


编辑副本

点击右键为button 按钮编辑副本


此时代码中生成了 一些 样式代码

controlTemplate 控件模板

contenPresenter 定义元素内容


border 修改外观

TemplateBinding 模板绑定


定义在style属性外

其他属性的样式副本 listview

自定义 绑定

ControlTemplate.Triggers

不会影响 事件


运行结果

相关推荐
※※冰馨※※21 分钟前
C# List、LinkedList、Dictionary性能对比
windows·c#
界面开发小八哥2 小时前
DevExpress WPF中文教程:Grid - 如何显示摘要(设计时)?
ui·c#·wpf·界面控件·devexpress
danielli2 小时前
C# winform中权限页面的设计和开发
开发语言·c#
WineMonk3 小时前
ArcGIS Pro SDK (七)编辑 6 检查器
arcgis·c#·gis·arcgis pro sdk
望天hous4 小时前
C#中关于表达式的构建示例,备忘
开发语言·数据库·c#
※※冰馨※※5 小时前
C# Queue、List、LinkedList 性能对比
开发语言·c#
香煎三文鱼5 小时前
C#实现根据指定运算符进行比较值,如>、>=、<、<=、==
c#·c#自定义运算符比较
WineMonk10 小时前
.NET C# 使用GDAL将mdb转换gdb数据
c#·.net·gis·gdb·gdal·mdb
jackfb201211 小时前
命令可以不通过数据绑定进行配置
wpf
code_shenbing14 小时前
上位机网络通讯
前端·数据库·ui·c#·winform