WPF:控件模板
2016-09-06 19:30
218 查看
1、理解可视化树和逻辑树
在wpf中添加的元素分类称为逻辑树。
自定义元素(Framework Element),逻辑树起不到多大帮助作用。
WPF通过可视化树深入元素内部。重新构建元素。
可视化树是逻辑树的扩展版本。它将元素分成更小的部分。WPF中的控件都可以分解成更小的部分。通过可视化树可以完成以下的两项工作:
①可以使用样式改变可视化树中的元素。
②可以为控件创建模板
WPF提供了用于浏览逻辑树和可视化树的两个类:System.Windows.LogicalTreeHelper和System.WIndows.Media.VisualTreeHelper。
2、理解模板
每个控件都有一个内置的方法,用于确定如何渲染控件(作为一组更基础的元素)。该方法称为控件模板,是用XAML标记块定义的。
3、创建控件模板
创建一个简单的按钮模板
一般创建模板都需要将模板定义为资源,并使用StaticResource引用资源,如下所示:
<Button Content="Button" Template="{StaticResource ButtonTemplate}" Margin="10" Padding="5"/>
实际的应用程序中模板资源一般放在应用程序资源中。
下面是控件模板的基本框架,当前的模板放在窗口的资源中:
<Window.Resources>
<ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
<!--此处为控件模板的内容-->
</ControlTemplate>
</Window.Resources>
在wpf中添加的元素分类称为逻辑树。
自定义元素(Framework Element),逻辑树起不到多大帮助作用。
WPF通过可视化树深入元素内部。重新构建元素。
可视化树是逻辑树的扩展版本。它将元素分成更小的部分。WPF中的控件都可以分解成更小的部分。通过可视化树可以完成以下的两项工作:
①可以使用样式改变可视化树中的元素。
②可以为控件创建模板
WPF提供了用于浏览逻辑树和可视化树的两个类:System.Windows.LogicalTreeHelper和System.WIndows.Media.VisualTreeHelper。
2、理解模板
每个控件都有一个内置的方法,用于确定如何渲染控件(作为一组更基础的元素)。该方法称为控件模板,是用XAML标记块定义的。
3、创建控件模板
创建一个简单的按钮模板
一般创建模板都需要将模板定义为资源,并使用StaticResource引用资源,如下所示:
<Button Content="Button" Template="{StaticResource ButtonTemplate}" Margin="10" Padding="5"/>
实际的应用程序中模板资源一般放在应用程序资源中。
下面是控件模板的基本框架,当前的模板放在窗口的资源中:
<Window.Resources>
<ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
<!--此处为控件模板的内容-->
</ControlTemplate>
</Window.Resources>
相关文章推荐
- WPF控件模板
- WPF控件模板和数据模板 - 醉意人间
- WPF中的ControlTemplate(控件模板)
- 在WPF中获取DataGridTemplateColumn模板定义的内容控件
- WPF 获取控件模板中的控件
- [转] 使用模板自定义 WPF 控件
- WPF中的ControlTemplate( 控件模板 )
- WPF中的控件模板(ControlTemplate)——出自《IT168》
- WPF中如何使用代码操作数据模板生成的控件
- WPF中的控件模板(ControlTemplate)
- 初步探讨WPF的ListView控件(涉及模板、查找子控件)
- WPF 中获取DataGrid 模板列中控件的对像
- WPF中的模板(四)- 寻找ControlTemplate和DataTemplate的控件
- WPF中的控件模板(ControlTemplate)——出自《IT168》
- WPF控件TabControl和TabItem原模板分析
- wpf 模板内控件在后台CS文件里面获取属性值
- WPF:从WPF Diagram Designer Part 1学习控件模板、移动、改变大小和旋转
- WPF模板是把控件MVC模式化
- WPF备忘录(5)怎样修改模板中的控件
- wpf中手风琴控件Accordion编辑模板后控件不正常。