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.rhkb.cn/news/400116.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CODEXGRAPH:突破代码与AI的壁垒,开启智能编程新时代

CODEXGRAPH&#xff1a;突破代码与AI的壁垒&#xff0c;开启智能编程新时代 CODEXGRAPH论文阅读1. 概述2. 相关研究代码库级别的任务检索增强代码生成&#xff08;RACG&#xff09; 3. CODEXGRAPH系统设计代码图数据库的构建与图数据库的交互 4. 实验设计与结果CrossCodeEvalSW…

数据结构---单链表实现

单链表是什么 我的理解是“特殊的数组”&#xff0c;通过访问地址来连接起来 1怎么创建链表 ----通过结构体&#xff08;成员有存入数据的data和指向下一个节点的地址的指针&#xff08;结构体指针&#xff09;next 初始架构---DataType 对应存入数据类型&#xff0c;此处的N…

数字引领风尚·智能改变生活“青岛电博会”路演活动(济南站)

2024CICE中国国际消费电子博览会路演活动&#xff08;济南站&#xff09;成功举行 数字引领风尚&#xff0c;智能改变生活。 8月7日&#xff0c;50余家行业协会、企业嘉宾、展商代表等云集2024中国国际消费电子博览会路演活动&#xff08;济南站&#xff09;现场&#xff0c;共…

瑞萨电子并购Altium 引领行业创新与发展

公开资料显示&#xff0c;2023 年 6 月&#xff0c;瑞萨电子曾宣布在 Altium 的 Altium 365 云平台上实现了所有 PCB 设计的标准化开发。瑞萨电子一直与 Altium 合作&#xff0c;将其所有产品的 ECAD 库发布到 Altium Public Vault。借助 Altium365 上的制造商零件搜索等功能&a…

Wireshark分析工具

简单用例 首先打开软件,左上角点文件,选中要分析的文件列表。 导入用tcpdump抓的包后进行分析,这里要输入过滤条件,对网络包进行一定的过滤处理。(这里172网段是阿里云的地址,用自己写的python2脚本对阿里云进行压测。) 这里输入过滤条件 tcp.port == 80 ,语法含义是…

Java虚拟机:类的加载机制

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 034 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

【ARM CoreLink 系列 5.1 -- CI-700 各种 Node 组件详细介绍】

请阅读【ARM CoreLink 文章专栏导读】 文章目录 CI-700 组件(Components)RN-I( I/O-coherent Request Node) 和 RN-D(I/O coherent Request Node with DVM)HN-F(Fully coherent Home Node)IO coherent Home Node (HN-I)IO coherent Home Node with Debug Trace Controller (H…

43.【C语言】指针(重难点)(F)

目录 15.二级指针 *定义 *演示 16.三级以及多级指针 *三级指针的定义 *多级指针的定义 17.指针数组 *定义 *代码 18.指针数组模拟二维数组 往期推荐 15.二级指针 *定义 之前讲的指针全是一级指针 int a 1; int *pa &a;//一级指针 如果写成 int a 1; int *pa &a…

机器学习——线性回归(sklearn)

目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理&#xff08;LinearRegression&#xff09; 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归&#xff08;解决多重共线性问题&#xff09; 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…

景联文科技:破解数据标注行业痛点,引领高质量AI数据服务

数据标注行业是人工智能和机器学习领域中一个非常重要的组成部分。随着AI技术的发展&#xff0c;对高质量标注数据的需求也在不断增长。 数据标注市场的痛点 1. 团队管理 在众包和转包模式下&#xff0c;管理大量的标注人员是一项挑战。 需要确保标注人员的专业性、稳定性和…

Pod的调度机制

文章目录 一、Pod调度概述二、Pod调度策略实现方式三、kube-scheduler调度1、kube-scheduler调度的流程2、过滤阶段3、打分阶段4、kube-scheduler 调度示例4.1、创建 Deployment 资源清单4.2、应用Deployment4.3、查看被kube-scheduler自动调度的Pod 四、nodeName调度1、创建Po…

Linux驱动入门实验班——LED驱动(附百问网视频链接)

目录 一、确定引脚编号 二、编写思路 2.1驱动层 2.2应用层 三、源码 四、实现 课程链接 一、确定引脚编号 首先&#xff0c;可以在开发板上执行如下命令查看已经在使用的GPIO状态&#xff1a; cat /sys/kernel/debug/gpio 可以看到每个gpio都有对应的编号&#xff0c;…

火语言RPA--火语言界面应用多窗体详解

多窗体 界面应用建立时默认加载一个窗体&#xff0c;若是程序运行时需要多个窗体配合&#xff0c;在通常情况下&#xff0c;您可将多窗体绑定在UI控件事件中&#xff0c;由界面交互来打开多窗体。 本章将介绍下如何建立多窗体以及在应用中如何运用多窗体完成多种场景的设置。 …

源代码防泄密怎么做?最好用的12款源代码加密软件推荐

源代码是企业的核心资产之一&#xff0c;其安全性直接关系到产品的竞争力和市场地位。防止源代码泄密是企业信息安全中的重中之重&#xff0c;本文将介绍几种有效的源代码防泄密方法&#xff0c;并推荐12款优秀的源代码加密软件。 1. 代码审查与权限管理 通过严格的代码审查流…

【MySQL】用户管理——用户、用户信息、创建用户、删除用户、修改用户密码、数据库的权限、给用户权限、回收权限

文章目录 MySQL1. 用户管理1.1 用户1.1.1 用户信息1.1.2 创建用户1.1.3 删除用户1.1.4 修改用户密码 1.2 数据库的权限1.2.1 给用户权限1.2.2 回收权限 MySQL 1. 用户管理 为什么MySQL要引入用户管理&#xff1f; 如果我们只能使用root用户&#xff0c;这样存在安全隐患。因为r…

[C++][opencv]基于opencv实现photoshop算法可选颜色调整

【测试环境】 vs2019 opencv4.8.0 【效果演示】 【核心实现代码】 SelectiveColor.hpp #ifndef OPENCV2_PS_SELECTIVECOLOR_HPP_ #define OPENCV2_PS_SELECTIVECOLOR_HPP_#include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "…

Mariadb数据库本机无密码登录的问题解决

Mariadb数据库本机无密码登录的问题解决 安装了mariadb后&#xff0c;发现Mariadb本机无密码才能登录 百度了很多文章&#xff0c;发现很多人是因为root的plugin设置的值不正确导致的&#xff0c;unix_socket可以不需要密码&#xff0c;mysql_native_password 是正常的。 解…

NLP_情感分类_预训练加微调方案

文章目录 项目背景代码导包一些模型以及训练的参数设置定义dataset定义模型读取数据声明训练及测试数据集将定义模型实例化打印模型结构模型训练测试集效果 同类型项目 项目背景 项目的目的&#xff0c;是为了对情感评论数据集进行预测打标。在训练之前&#xff0c;需要对数据…

Datawhale X 魔搭 AI夏令营 第四期魔搭-AIGC文生图方向Task2笔记

了解一下 AI生图技术 的能力&局限 对所有人来说&#xff0c;定期关注AI生图的最新能力情况都十分重要&#xff1a; 对于普通人来说&#xff0c;可以避免被常见的AI生图场景欺骗&#xff0c;偶尔也可以通过相关工具绘图 对于创作者来说&#xff0c;通过AI生图的工具可以快速…

全球 30 万台游戏服务器的 PlayFlow Cloud 如何通过 DigitalOcean 实现动态扩展

“我在 DigitalOcean 上首次接触了 Kubernetes。设置 Kubernetes 集群非常简单&#xff0c;使我能够轻松自动化扩展我们的游戏服务器。”——Haseeb Sheikh&#xff0c;PlayFlow Cloud 创始人兼首席执行官 PlayFlow Cloud 是由 Haseeb Sheikh 创立的&#xff0c;旨在通过简化游…