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

ControlTemplate

定义

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

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

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

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

示例

首先创建一个button 按钮

打开文本大纲


编辑副本

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


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

controlTemplate 控件模板

contenPresenter 定义元素内容


border 修改外观

TemplateBinding 模板绑定


定义在style属性外

其他属性的样式副本 listview

自定义 绑定

ControlTemplate.Triggers

不会影响 事件


运行结果

相关推荐
冰茶_1 小时前
C#中常见的设计模式
java·开发语言·microsoft·设计模式·微软·c#·命令模式
chegan3 小时前
用c#从头写一个AI agent,实现企业内部自然语言数据统计分析(二)-数据结构和代码分析方法
ai·c#·agent
煤烦恼3 小时前
Kafka 命令行操作与 Spark-Streaming 核心编程总结
c#·linq
Zhen (Evan) Wang5 小时前
.NET 6 + Dapper + User-Defined Table Type
sqlserver·c#·.net·wpf
FAREWELL000755 小时前
C#进阶学习(十四)反射的概念以及关键类Type
开发语言·学习·c#·反射·type
FAREWELL000756 小时前
C#进阶学习(十三)C#中的预处理器指令
开发语言·学习·c#·预处理指令
qq_297908016 小时前
c#简易超市充值卡程序充值消费查余额
经验分享·sqlserver·开源·c#·.net·开源软件
浅陌sss7 小时前
C#中的弱引用使用
c#
云上空8 小时前
C#初级知识总结
开发语言·c#
钢铁男儿8 小时前
C# 深入理解类:面向对象编程的核心数据结构
开发语言·数据结构·c#