WPF学习:控件的模板
WPF中的控件模板: WPF的每个控件都有一个默认的模版,是对控件的描述,我们可以自定义模板来体会控件的默认模板,打造个性化控件。 于Style不同,Style智能改变控件的已有属性值来控制,但是模板可以改变控件的内部结构(视觉树)。 首先是声明一个ControlTemplate对象,对其进行相应的配置,将ControlTemplate赋值给控件的
WPF中的控件模板:
WPF的每个控件都有一个默认的模版,是对控件的描述,我们可以自定义模板来体会控件的默认模板,打造个性化控件。
于Style不同,Style智能改变控件的已有属性值来控制,但是模板可以改变控件的内部结构(视觉树)。
首先是声明一个ControlTemplate对象,对其进行相应的配置,将ControlTemplate赋值给控件的Template属性。
可以复制看看代码:
<Button Content="看看我的变化" Height="59" HorizontalAlignment="Left" Margin="99,88,0,0" Name="button1"
VerticalAlignment="Top" Width="94" Background="#FFB4AEFC">
<Button.Template>
<ControlTemplate>
<!--定义视觉树-->
<Grid>
<Ellipse Height="{TemplateBinding Control.Height}"
Fill="{TemplateBinding Button.Background}"
Width="{TemplateBinding Button.Width}" />
<TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{TemplateBinding Button.Content}"
/>
</Grid>
<!--定义视觉树结束-->
<!--定义触发器-->
<ControlTemplate.Triggers>
<Trigger Property="Button.IsMouseOver" Value="True">
<Setter Property="Button.Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
<!--定义触发器结束-->
</ControlTemplate>
</Button.Template>
</Button>
VerticalAlignment="Top" Width="94" Background="#FFB4AEFC">
<Button.Template>
<ControlTemplate>
<!--定义视觉树-->
<Grid>
<Ellipse Height="{TemplateBinding Control.Height}"
Fill="{TemplateBinding Button.Background}"
Width="{TemplateBinding Button.Width}" />
<TextBlock Name="txtBlock" Margin="{TemplateBinding Button.Padding}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Text="{TemplateBinding Button.Content}"
/>
</Grid>
<!--定义视觉树结束-->
<!--定义触发器-->
<ControlTemplate.Triggers>
<Trigger Property="Button.IsMouseOver" Value="True">
<Setter Property="Button.Foreground" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
<!--定义触发器结束-->
</ControlTemplate>
</Button.Template>
</Button>
运行结果:
![](http://silverlightchina.net/uploads/allimg/111111/061152L16-0.jpg)
运行的效果
![](http://silverlightchina.net/uploads/allimg/111111/0611523428-1.jpg)
鼠标移上去的变化
这个就是给Button按钮写的模板出来的效果。