当前位置: 首页 > 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
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/423514.html

相关文章:

  • Windows下搭建Telegraf+Influxdb+Grafana(详解一)
  • 同城搭子社交系统开发同城搭子群活动APP圈子动态小程序
  • 大厂最佳实践 | Stripe 如何防止重复付款
  • Raspberry Pi Pico 2 上实现:实时机器学习(ML)音频噪音抑制功能
  • 安全自动化和编排:如何使用自动化工具和编排技术来提高安全操作效率。(第二篇)
  • HarmonyOS WebView
  • 解决elementUI表格里嵌套输入框,检验时错误信息被遮挡
  • Unity读取Android外部文件
  • 【5.3 python中的元组】
  • Debezium报错处理系列之第116篇:Caused by: java.lang.NumberFormatException: null
  • 【启明智显技术分享】工业级HMI芯片Model3C/Model3A开发过程中问题记录笔记二
  • Python 函数返回yield还是return?这是个问题
  • Linux系统性能调优
  • PHPStorm 环境配置与应用详解
  • 前端各种文本文件预览 文本编辑excel预览编辑 pdf预览word预览 excel下载pdf下载word下载
  • 【Qt】QPluginLoader 类学习
  • DataGear 企业版 1.2.0 发布,数据可视化分析平台
  • 为啥https比http慢
  • 软件测试需要具备的基础知识【功能测试】---后端知识(三)
  • 详解 Redis 队列 实现
  • 分析SQL的count(*)并优化
  • Java学习日记(day18)
  • Oracle(61)什么是外部表(External Table)?
  • 物联网HMI/网关搭载ARM+CODESYS实现软PLC+HMI一体化
  • Java中Stream流
  • 纯css实现多行文本右下角最后一行展示全部按钮
  • WPF篇(17)-ListBox列表控件+ListView数据列表控件
  • HAProxy 全解析:驾驭网络负载均衡与高可用的强大引擎
  • 陶瓷材质的防静电架空地板越来越受欢迎的原因
  • Mariadb数据库本机无密码登录的问题解决