zoukankan      html  css  js  c++  java
  • ControlTemplate & DataTemplate

    http://www.cnblogs.com/dc10101/archive/2011/12/08/2280117.html

    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属性。

     

  • 相关阅读:
    word查找与替换
    细说ASP.NET Windows身份认证
    防钓鱼代码
    sql触发器
    url地址栏参数
    sql递归查询
    认识TWICImage类
    尝试发个贴
    泛型单元
    [学习官方例子]TArray
  • 原文地址:https://www.cnblogs.com/zuiyirenjian/p/2655714.html
Copyright © 2011-2022 走看看