zoukankan      html  css  js  c++  java
  • Template、ItemsPanel、ItemContainerStyle、ItemTemplate

    先来看一张图(网上下的图,加了几个字)

    1、Template是指控件的样式

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

    <Style x:Key="ListBoxStyle1" TargetType="ListBox">
    <Setter Property="Background" Value="#FFFFFFFF"/>
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="ListBox">
    //............相关代码
    
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>

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

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

    <ListBox >  
    <ListBox.ItemsPanel>
    <ItemsPanelTemplate>
      <VirtualizingStackPanel Orientation="Horizontal"/>//横向排列
    </ItemsPanelTemplate>
      </ListBox.ItemsPanel>
    </ListBox>

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

    <ListBox  ItemContainerStyle="{StaticResource  ListBoxItemStyle}">  
    
    <ListBoxItem />
    
    <ListBoxItem />
    </ListBox>

    <ListBox >  
    
    <ListBoxItem  Style="{StaticResource  ListBoxItemStyle}"/>
    
    <ListBoxItem  Style="{StaticResource  ListBoxItemStyle}"/>
    </ListBox>

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

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


    从csdn转载过来的,原网址:http://blog.csdn.net/wushang923/article/details/6865322

  • 相关阅读:
    POJ 3672 水题......
    POJ 3279 枚举?
    STL
    241. Different Ways to Add Parentheses
    282. Expression Add Operators
    169. Majority Element
    Weekly Contest 121
    927. Three Equal Parts
    910. Smallest Range II
    921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/zwzw/p/4238937.html
Copyright © 2011-2022 走看看