1理解控件模板
控件模板ControlTemplate指定组成一个控件显示的各种视觉元素。控件模板主要包括:
- 视觉树外观属性
- 触发器列表属性
2创建自定义控件模板
2.1当前xaml资源中,添加ControlTemplate标签,内容如下
<Window.Resources>
<ControlTemplate x:Key="btnTemplate" TargetType="{x:Type Button}">
<Border Background="Blue" TextBlock.Foreground="White" BorderThickness="3">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
</Border>
</ControlTemplate>
</Window.Resources>
2.2设置button的Template属性值,绑定到指定的button上面
2.3上面说到了控件模板除了包括视觉树属性,还包括触发器列表属性,下面我们在添加触发器属性到控件模板中,
在同一ControlTemplate标签中继续添加Triggers标签:
- Trigger必须在ControlTemplate.Triggers的节点下;
- Triggers集合中可以包含任意数量的Trigger;
- 一个Trigger可以有任意数量的Setter;
- 每个Setter中指定三个属性,分别是TargetName、Property和Value。
<Window.Resources>
<ControlTemplate x:Key="btnTemplate" TargetType="{x:Type Button}">
<Border x:Name="border1" Background="Blue" TextBlock.Foreground="White" BorderThickness="3">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="border1" Property="Background" Value="Red"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>