转自:https://www.cnblogs.com/changbaishan/p/4399593.html

1、Template是指控件的样式

在WPF中所有继承自contentcontrol类的控件都含有此属性,(继承自FrameworkElementdl类的TextBlock等控件无)。Template用于定义控件结构(Visual Tree),和Style有点容易混淆,每个控件初始没有Style属性,而在WPF中所有的控件都有默认的Template。Style也做样式解释,但是它改变的只是控件原来的属性,比如长宽颜色之类的,而Template可以改变控件的形状外形,还可以根据需要往里面添加其他的控件来丰富当前的控件。Style可以用来定义一定范围内的所有对应控件的样式,所以平时多为两者结合使用。

[html] view plaincopy

  1. <Style x:Key="ListBoxStyle1" TargetType="ListBox">
  2. <Setter Property="Background" Value="#FFFFFFFF"/>
  3. <Setter Property="Template">
  4. <Setter.Value>
  5. <ControlTemplate TargetType="ListBox">
  6. //............相关代码
  7. </ControlTemplate>
  8. </Setter.Value>
  9. </Setter>
  10. </Style>

2、ItemsPanel是指控件的子项的布局样式,只有那些有item的控件才有此属性,如ListBox ,Combox,TreeView,DataGrid,TabelControl等,后面的两个也是如此。

eg:在不做设置的时候,ListBox的Item子项是纵向排列的,但是可以通过设置ItemPanell来实现横向排列或者其他更复杂的排列方式。

[html] view plaincopy

  1. <ListBox >
  2. <ListBox.ItemsPanel>
  3. <ItemsPanelTemplate>
  4. <VirtualizingStackPanel Orientation="Horizontal"/>//横向排列
  5. </ItemsPanelTemplate>
  6. </ListBox.ItemsPanel>
  7. </ListBox>

3、ItemContainerStyle是控件子项的样式,在ListBox里即ListBoxItem的Style属性,只是在ListBox设ItemContainerStyle表示当前控件的所有子项都默认了这个style,它的格式就是对应子项控件的Style。

[html] view plaincopy

  1. <ListBox  ItemContainerStyle="{StaticResource  ListBoxItemStyle}">
  2. <ListBoxItem />
  3. <ListBoxItem />
  4. </ListBox>

[html] view plaincopy

  1. <ListBox >
  2. <ListBoxItem  Style="{StaticResource  ListBoxItemStyle}"/>
  3. <ListBoxItem  Style="{StaticResource  ListBoxItemStyle}"/>
  4. </ListBox>

等价,但是显然前者要方便很多。

4、ItemTemplate是控件子项的样式,说法和1里面的相同,用法和3里面的相同,即与子项的Template属性等价,但是这个显然也是比较方便的。

Template、ItemsPanel、ItemContainerStyle、ItemTemplate区别和联系相关推荐

  1. 对Strategy与Template Method模式的区别的一些讨论

    准备抛弃自己原本在用的另一个blog了,开始把原本的一些文转过来. 这篇是[misc] 前两天与axx大聊天的一些记录. 转载开始: 10/02 2007, 星期二 主要是对Strategy与Temp ...

  2. Template,ItemsPanel,ItemContainerStyle ,ItemTemplate四个属性辨析

    Template,ItemsPanel,ItemContainerStyle ,ItemTemplate四个属性辨析 ItemsControl,ListBox  等带有子项的控件四个重要属性解析: T ...

  3. ItemsControl 解析

    先上个示例 <ItemsControl Margin="10" ItemsSource="{Binding}" Name="itemsContr ...

  4. 关于WPF中Popup中的一些用法的总结

    原文:关于WPF中Popup中的一些用法的总结 Popup控件是一个常用的非常有用的控件,顾明思义就是弹出式控件,首先我们来看看MSDN对它的解释吧,表示具有内容的弹出窗口,这个是非常重要的控件,我们 ...

  5. C# wpf 使用ListBox实现尺子控件

    文章目录 前言 一.如何实现? 1.设置横向ListBox 2.Item设为刻度样式 3.绑定数据源 二.完整代码 三.效果预览 总结 前言 尺子在客户端开发中有一定的应用场景,比如厘米尺.白板的画线 ...

  6. 使用ListBox控件,选中ListBoxItem中的TextBox后,如何改变SelectedItem

    TextBox控件是一个比较特别的控件: 选中ListBoxItem中的TextBox后,如何改变ListBox的SelectedItem?这里写了一段简单的实例代码. <ListBox x:N ...

  7. WPF实现统计图(饼图仿LiveCharts)

    WPF开发者QQ群: 340500857  | 微信群 -> 进入公众号主页 加入组织 欢迎转发.分享.点赞.在看,谢谢~. 01 - 效果预览 效果预览(更多效果请下载源码体验): 一.Pie ...

  8. WPF ListView展示层叠信息

    原文:WPF ListView展示层叠信息 通常我们在ListView中展示一列同类数据,例如城市名称.不过可以对ListView的DataTemplate稍作修改,让其显示层叠信息.例如:需要在Li ...

  9. 沿环形路径创建渐变画笔

    沿环形路径创建渐变画笔 <Windowx:Class="WpfApp5.MainWindow"xmlns="http://schemas.microsoft.com ...

最新文章

  1. C++接收字符串数组_C++模拟面试:从数组“紧凑”操作说开来
  2. 人工智能带来的事业浪潮或将提前到来
  3. 一文带你读懂边缘计算是什么
  4. Oracle编程入门经典 第7章 表
  5. EF中的Code First
  6. python输出子列表_python利用递归函数输出嵌套列表的每个元素
  7. Laravel短信mysql_使用 Laravel 实现阿里云短信服务队列
  8. Java经纬度坐标转换到平面坐标
  9. 双十一 马云的淘宝如何通过数据分析得到利润?
  10. [WCF编程]8.服务实例的生命周期
  11. cipher命令(转)
  12. gre 填空双选题目
  13. linux 上u盘打不开了,U盘打不开怎么办-八种方法汇总
  14. 【项目实战】——历史数据归档
  15. 目标检测YOLO实战应用案例100讲-基于深度学习的显著性目标检测研究与应用(论文篇)
  16. 代码管理和编辑工具Source Insight 4.0使用介绍
  17. 含并行连结的网络 GoogLeNet / Inception V3 动手学深度学习v2 pytorch
  18. 龙家贰少的MarkDown学习笔记
  19. jre包括jvm和java核心类库_包含JVM标准实现及Java核心类库
  20. 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day15-阶段项目(拼图小游戏)(上篇)

热门文章

  1. 你绝对能看懂的Kafka源代码分析-RecordAccumulator类代码分析
  2. python程序控制homeassistant_Python pyps4-homeassistant包_程序模块 - PyPI - Python中文网
  3. 通讯录VCF格式批量生成
  4. conda 代理设置
  5. SpringMvc-maven-Mysql-ajax-bootsrap进行一个简单的web开发(大二下期末考试内容)
  6. 【迁移学习】Agile Domain Adaptation——一种平衡运算资源和速度的深度迁移学习方法
  7. PADS VX2.4在WIN10系统中菜单显示不全的解决方法
  8. 《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.6 考试管理系统(类图综合训练)
  9. mysql数据库下载 织梦本地安装教程_织梦本地环境包安装数据库管理界面phpMyAdmin...
  10. 测评 | 利用ONES Project实现2021年考研规划