zoukankan      html  css  js  c++  java
  • WPF笔记(9)模板(Template)

         WPF 控件的默认 UI 通常由其他控件和形状构造而来。有时控件的默认外观可能与应用程序的整体外观不一致。在这种情况下,您可以使用 ControlTemplate更改控件的 UI 的外观,而无需更改控件的内容和行为。

         控件模板使您可以指定控件的外观,数据模板则允许您指定控件内容的外观。数据模板通常用于改进绑定数据的显示方式。例如我们可以通过将时间的字符串形式表示为一个图片。

         DataTemplate与ControlTemplate有点相似。它们都是用FrameworkElementFactroy对象定义它们的视觉树属性。ControlTemplate是将视觉树的视觉属性绑定到控件属性(control property),而DataTemplate是将视觉树的视觉属性绑定到数据属性(Data Property)。DataTemplate和ControlTemplate都从FrameworkTemplate继承。

         数据模板适用于Content Control类控件与Items Control类控件。

         DataTemple有两个构造函数。在public DataTemplate(object dataType)构造函数中,datatype是此模板要应用的数据类对象,在code中可以使用typeof。在XAML中可以使用x:Type。

         下面是一个简单的数据类Country,显示国籍和国旗。

    Code

    下面如果我们想在一个ListBox中显示。就可以自定义ListBox的数据模板。

    XAML方式

    Code

    说明:x:Key表示在资源字典中的Key值,Datatype表示该模板针对的数据类型是Country

    引用自定义名字空间:

    xmlns:demo="clr-namespace:Demo" 

    将此模板应用到ListBox中:

    Code

     

    Code方式

    通过code的方式也可以实现DataTemplate。主要用到的是FramewrokElementFactroy来创建视觉元素。

    如:

    Code

         控件模板的使用与数据模板类似。

          msdn:http://msdn.microsoft.com/zh-cn/library/system.windows.controls.controltemplate.aspx

                  http://msdn.microsoft.com/zh-cn/library/ms742521.aspx

  • 相关阅读:
    Linux 基础 —— RPM
    mysql主从复制
    mysql.user表中Host为%的含义
    MySQL + Atlas --- 部署读写分离(参考02)
    MySQL读写分离技术(参考)
    蚁群算法
    java 回调
    java 接口sort comparable
    matlab 求解高阶方程
    matlab 求解常微分方程
  • 原文地址:https://www.cnblogs.com/jyz/p/1298784.html
Copyright © 2011-2022 走看看