博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ControlTemplate & DataTemplate
阅读量:6367 次
发布时间:2019-06-23

本文共 1007 字,大约阅读时间需要 3 分钟。

ControlTemplate和DataTemplate都是用于定制控件的外观,但两者有着很大的区别。

ControlTemplate服务于Control(有形的控件),而DataTemplate服务于Data(无形的数据)。

换句话说,ControlTemplate用于将已有的外观进行改造,DataTemplate是从无到有地构建外观。

 

ContentControl、ItemsControl类型

  • ContentControl,它的Content属性包含单个元素,例如Button
  • ItemsControl,它的Items属性包含多个元素,例如Listbox

 

ContentPresenter、ItemsPresenter类型

平常的使用中,可以认为这些Presenter是占位符,用于ControlTemplate的定义中,代表了控件原本的Content。

以ContentControl为例,它有一个ContentPresenter类型的属性,如果其值是一个UIElement,那就直接显示这个UIElement,但如果是某个无形的数据,就要让ContentPresenter的值是一个DataTemplate。

 

ControlTemplate类型

ControlTemplate的代表:

  • ContentControl类型的Template属性
  • ItemsControl类型的Template属性

ControlTemplate类型中常见到{TemplateBinding 属性名},一般表示与原有控件的属性绑定。

 

DataTemplate类型

DataTemplate的典型代表:

  • ContentControl类型的ContentTemplate属性
  • ItemsControl类型的ItemTemplate属性

DataTemplate类型中常见到{Binding …},表示数据绑定。

 

 

以下不属于Template,但是经常会与Template一起出现,所以写在这里。

 

ItemsPanel类型

表示ItemsControl各个Item是如何布局的,常用的也就是StackPanel横过来竖过来这些。

 

ItemContainerStyle类型

定制ItemsControl中各个Item的Style。如果要定制ItemsControl总框架的Style,就直接用ItemsControl的Style属性。

 

转载地址:http://skrma.baihongyu.com/

你可能感兴趣的文章
CentOS下如何从vi编辑器插入模式退出到命令模式
查看>>
Mysql索引的类型
查看>>
Eclipse debug模式 总是进入processWorkerExit
查看>>
Nginx的https配置记录以及http强制跳转到https的方法梳理
查看>>
[每天五分钟,备战架构师-1]操作系统的类型和结构
查看>>
springcloud(十三):Eureka 2.X 停止开发,但注册中心还有更多选择:Consul 使用详解...
查看>>
关于Boolean类型做为同步锁异常问题
查看>>
TestLink运行环境:Redhat5+Apache2.2.17+php-5.3.5+MySQL5.5.9-1
查看>>
Get File Name from File Path in Python | Code Comments
查看>>
显示本月每一天日期
查看>>
[转]java 自动装箱与拆箱
查看>>
NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配
查看>>
think in coding
查看>>
IdHttpServer实现webservice
查看>>
HTML的音频和视频
查看>>
Unsupported major.minor version 52.0
查看>>
面对对象之差异化的网络数据交互方式--单机游戏开发之无缝切换到C/S模式
查看>>
优酷网架构学习笔记
查看>>
把HDFS里的json数据转换成csv格式
查看>>
WEEX-EROS | 集成并使用 bindingx
查看>>