ControlTemplate,ItemsPanelTemplate,DataTemplate(wpf)
2015-04-10 14:42
447 查看
在WPF中有三大模板ControlTemplate,ItemsPanelTemplate,DataTemplate.其中ControlTemplate和ItemsPanelTemplate是控件模板,DataTemplate是数据模板,他们都派生自FrameworkTemplate抽象类。
画一个按钮模板来举例说明:
[/code]
<Button Content="Hello WPF"/>
结果:
想了解下DataTemplate和HierarchicalDataTemplate,就看以上的例子吧。他们中只要有控件的绑定都会用到。想了解的更深一步,请看下南柯之石的这篇文章。
1、ControlTemplate
ControlTemplate:控件模板主要有两个重要属性:VisualTree内容属性和Triggers触发器。所谓VisualTree(视觉树),就是呈现我们所画的控件。Triggers可以对我们的视觉树上的元素进行一些变化。一般用于单内容控件。画一个按钮模板来举例说明:
<Style TargetType="Button">
[code] <Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Ellipse Width="100" Height="100">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="blue"/>
<GradientStop Offset="1" Color="LightBlue"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Ellipse Width="80" Height="80">
<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="White"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
[/code]
<Button Content="Hello WPF"/>
结果:
代码<UserControl.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Controls/TreeViewItemStyle.xaml"/> </ResourceDictionary.MergedDictionaries> <HierarchicalDataTemplate DataType="{x:Type controls:Node}" ItemsSource="{Binding ChildNodes}"> <TextBlock Text="{Binding Name}"/> </HierarchicalDataTemplate> </ResourceDictionary> </UserControl.Resources>
3、DataTemplate和HierarchicalDataTemplate
DataTemplate就是显示绑定数据对象的模板。 HierarchicalDataTemplate继承于DataTemplate,它专门对TreeViewItem 或 MenuItem的一些数据对象的绑定。想了解下DataTemplate和HierarchicalDataTemplate,就看以上的例子吧。他们中只要有控件的绑定都会用到。想了解的更深一步,请看下南柯之石的这篇文章。
相关文章推荐
- WPF中ControlTemplate,ItemsPanelTemplate ,DataTemplate
- WPF 深入浅出 模板(DataTemplate 数据外衣、ControlTemplate 控件外衣、ItemsPanelTemplate 项布局
- WPF为ItemsControl设置ItemsPanelTemplate
- 【WPF】ListBox使用DataTemplate 以及默认选中第一项Item
- WPF : ControlTemplate和DataTemplate的区别
- WPF Knowledge Points - ControlTemplate和DataTemplate的区别
- WPF ListViewItem ControlTemplate command 不执行问题
- WPF数据绑定(ItemTemplate和DataTemplate)
- WPF Template模版之DataTemplate与ControlTemplate【一】
- WPF中的模板(四)- 寻找ControlTemplate和DataTemplate的控件
- WPF后台生成datatemplate(TreeViewItem例子)
- WPF Template模版之DataTemplate与ControlTemplate的关系和应用【二】
- WPF Template模版之DataTemplate与ControlTemplate的关系
- WPF中ControlTemplate和DataTemplate的区别
- WPF Template模版之DataTemplate与ControlTemplate的关系和应用【二】
- WPF Template模版之DataTemplate与ControlTemplate【一】
- WPF Template模版之DataTemplate与ControlTemplate的关系和应用【二】
- WPF 数据模板DataType属性的使用,不用指定ItemTemplate
- WPF中的模板(三)- ControlTemplate和DataTemplate的应用
- WPF ControlTemplate 仿QQ概念版CheckBox