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>