当前位置: 首页 > news >正文

WPF 数据模板DataTemplate、控件模板ControlTemplate、Style、ItemsPreseter

一言蔽之,Template就是“外衣”——
ControlTemplate是控件的外衣,
DataTemplate是数据的外衣。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

DataTemplate 它定义了一个数据对象的可视化结构

DataTemplate常用的地方有3处,分别是:

ContentControl的ContentTemplate属性,相当于给ContentControl的内容穿衣服。
ItemsControl的 ItemTemplate属性,相当于给ItemsControl的数据条目穿衣服。
GridViewColumn的CellTemplate属性,相当于给GridViewColumn单元格里的数据穿衣服。

 <ItemsControl ItemsSource="{Binding xxx}"><ItemsControl.ItemTemplate><DataTemplate><Grid><Grid.ColumnDefinitions><ColumnDefinition></ColumnDefinition><ColumnDefinition></ColumnDefinition></Grid.ColumnDefinitions><TextBlock Text="{}"></TextBlock><TextBlock Text="{}"></TextBlock></Grid></DataTemplate></ItemsControl.ItemTemplate></ItemsControl>

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

Style

为了让同一种控件能担当起不同的角色,程序员就要为它们设计多种外观样式和行为动作,这就是Style。
构成Style最重要的两种元素是Setter和Trigger,Setter类帮助我们设置控件的静态外观风格,Trigger类则帮助我们设置控件的行为风格。

<Window x:Class="Demo7._3.WpfStyle.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Demo7._3.WpfStyle"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Window.Resources><Style x:Key="myBtnStyle" TargetType="Button"><Style.Setters><Setter Property="Background" Value="AliceBlue"/><Setter Property="Height" Value="50"/></Style.Setters></Style><Style TargetType="CheckBox"><Style.Triggers><Trigger Property="IsChecked" Value="True"><Trigger.Setters><Setter Property="Foreground" Value="Red"/></Trigger.Setters></Trigger></Style.Triggers></Style></Window.Resources><StackPanel><Button Style="{StaticResource myBtnStyle}"/><CheckBox Content="测试触发器"/></StackPanel>
</Window>

》》》添加触发器

<Window x:Class="Demo7._3.WpfStyle.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Demo7._3.WpfStyle"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Window.Resources><Style x:Key="myBtnStyle" TargetType="Button"><Style.Setters><Setter Property="Background" Value="AliceBlue"/><Setter Property="Height" Value="50"/></Style.Setters></Style><Style TargetType="CheckBox"><Style.Triggers><MultiTrigger><MultiTrigger.Conditions><Condition Property="IsChecked" Value="True"/><Condition Property="Content" Value="测试触发器"/></MultiTrigger.Conditions><MultiTrigger.Setters><Setter Property="Foreground" Value="Green"/></MultiTrigger.Setters></MultiTrigger></Style.Triggers></Style></Window.Resources><StackPanel><Button Style="{StaticResource myBtnStyle}"/><CheckBox Content="测试触发器"/></StackPanel>
</Window>

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • jenkins 安装以及自动构建maven项目并且运行
  • thinkphp漏洞之sql注入漏洞-builder处漏洞
  • wiota窄带通讯技术对于vu传统lora
  • [cvpr 2024 目标检测 前沿研究 热点] cpvr 2024中与目标检测主题有关的论文
  • 【无标题】第九章 从 Web 客户端指定自定义传输
  • 钢板现货:A572Gr60和SA572Gr60材质分析、A572Gr60和SA572Gr60简介
  • fetch 在实际项目中的思考
  • 2024华为OD机试真题- 求字符串中所有整数的最小和-(C++/Python)-C卷D卷-100分
  • 中国联通在国外最大的综合电信服务枢纽
  • 【算法模板】数据结构:单调栈
  • vue2和vue3项目使用signalr插件,前后端如何配合的
  • 大语言模型有什么用途?
  • 计算机网络17——IM聊天系统——客户端核心处理类框架搭建
  • XV6——锁与并发
  • AI技术在招聘数据分析洞察中的作用
  • 【Amaple教程】5. 插件
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Angularjs之国际化
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java超时控制的实现
  • JS学习笔记——闭包
  • Octave 入门
  • Spring框架之我见(三)——IOC、AOP
  • vue的全局变量和全局拦截请求器
  • 给Prometheus造假数据的方法
  • 构造函数(constructor)与原型链(prototype)关系
  • 面试总结JavaScript篇
  • 让你的分享飞起来——极光推出社会化分享组件
  • 收藏好这篇,别再只说“数据劫持”了
  • 网络应用优化——时延与带宽
  • Java总结 - String - 这篇请使劲喷我
  • postgresql行列转换函数
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (bean配置类的注解开发)学习Spring的第十三天
  • (Oracle)SQL优化技巧(一):分页查询
  • (算法)大数的进制转换
  • (算法)硬币问题
  • (转)Sql Server 保留几位小数的两种做法
  • (转)原始图像数据和PDF中的图像数据
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET C# 操作Neo4j图数据库
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core 发展历程和版本迭代
  • .Net Core 微服务之Consul(二)-集群搭建
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net6+aspose.words导出word并转pdf
  • .NetCore 如何动态路由