WPF中有一个ControlTemplate类
ControlTemplate 指定控件的可视结构和可视行为。可以通过为控件指定新 ControlTemplate 自定义该控件的外观。
自定义控件实例:
<!—自定义控件,定义自己所需的按钮模板-->
<Window.Resources>
<!--按钮样式:用x:Key设置唯一键-->
<Style x:Key="CloseButtonStyle" TargetType="{x:Type Button}">
<!--边框:黑色-->
<Setter Property="BorderBrush" Value="Black"></Setter>
<!--背景:白色-->
<Setter Property="Background" Value="White"></Setter>
<Setter Property="Template">
<Setter.Value>
<!--自定义模板-->
<ControlTemplate TargetType="{x:Type Button}">
<!--定义视觉树-->
<Grid>
<!--形状绘图:椭圆-->
<!-- 模板绑定(TemplateBinding):使用TemplateBinding扩展把TabItem的Stroke设置为控件的Stroke。-->
<Ellipse Width="15" Height="15" HorizontalAlignment="Center" VerticalAlignment="Center" Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Background}"></Ellipse>
<TextBlock x:Name="text" FontSize="9" Text="X" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</Grid>
<!--定义触发器-->
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="true">
<!--设置背景色-->
<Setter Property="Background" Value="#FFDA1717"></Setter>
<!--设置字体颜色:白色-->
<Setter TargetName="text" Property="Foreground" Value="White"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ Window.Resources>