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

embedded/2024/10/17 14:30:09/

ControlTemplate

定义

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

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

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

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

示例

首先创建一个button 按钮

打开文本大纲

在这里插入图片描述
在这里插入图片描述

编辑副本

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

在这里插入图片描述
在这里插入图片描述

此时代码中生成了 一些 样式代码
在这里插入图片描述

controlTemplate 控件模板

在这里插入图片描述

contenPresenter 定义元素内容

在这里插入图片描述
在这里插入图片描述

border 修改外观

在这里插入图片描述

TemplateBinding 模板绑定

在这里插入图片描述
在这里插入图片描述

定义在style属性外

在这里插入图片描述

其他属性的样式副本 listview

在这里插入图片描述

在这里插入图片描述

自定义 绑定

在这里插入图片描述

ControlTemplate.Triggers

在这里插入图片描述

不会影响 事件

在这里插入图片描述
在这里插入图片描述
运行结果

在这里插入图片描述


http://www.ppmy.cn/embedded/53834.html

相关文章

AI绘画Stable Diffusion人物背景替换实操教程,让创意无限延伸

大家好,我是画画的小强 Stable Diffusion以其强大的能力可以实现人物背景的更换。本文将带你深入了解如何利用Stable Diffusion中的Inpaint Anything插件快速且精准地实现人物背景的替换,从而让你的图片焕发新生。 前期准备 本文会使用到Inpaint Anyt…

基于CNN卷积神经网络的MQAM调制识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 CNN模型结构 4.2 损失函数与优化 4.3 训练与测试 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff0…

数据赋能(131)——体系:数据转换——概述、关注焦点

概述 数据转换是指将数据从一种格式、结构或类型转换为另一种格式、结构或类型的过程。 数据转换操作属于数据整理过程。 它通常涉及数据清洗、数据映射、数据合并、数据拆分等操作,以确保数据的正确性和一致性。 数据转换的目的在于将原始数据转换为更易于处理…

游戏开发中常用Api

文章目录 Windows PowerShell1.PowerShell的执行策略 Git_Api1.初始化仓库2.设置全局邮箱和用户名3.ssh相关操作3.1.检查是否存在ssh3.2.生成ssh3.3.测试和仓库的ssh连接 4.与远程仓库的操作4.1.连接远程仓库4.2.取消连接4.3.拉取代码4.4.提交相关 5.分支操作5.1.修改要提交的分…

git 多分支实现上传文件但避免冲突检测

文章目录 背景实现步骤 背景 对于某些通过命令生成的配置文件(如 TypeScript 类型文件等) 实现步骤 1

Spring Boot中使用Swagger生成API文档

Spring Boot中使用Swagger生成API文档 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在现代的软件开发中,良好的API文档是团队协作和开发效率不可或…

[C++][设计模式][原型模式]详细讲解

1.动机 在软件系统中,经常面临这“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口如何应对这种变化?如何向“客户程序(使用这些对象的程序)”隔离出…

尚硅谷vue2的todolist案例解析,基本概括了vue2所有知识点,结尾有具体代码,复制粘贴学习即可

脚手架搭建 1-初始化脚手架(全局安装) npm install -g vue/cli2-切换到创建项目的空目录下 vue create xxxx整体结构 整体思路 App定义所有回调方法 增删改查 还有统一存放最终数据,所有子组件不拿数据,由App下发数据&#xf…