wpf进阶教程(一):创建控件模板ControlTemplate

控件模板可对控件的内容和样式均做出改变。
项目源码
防止两个按钮,第一个为普通按钮,第二个应用了控件模板:

<Window.Resources>
    <ControlTemplate x:Key="ButtonTemplate" TargetType="{x:Type Button}">
        <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="2" Background="Red" TextBlock.Foreground="White">
            <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center">
            </ContentPresenter>
        </Border>
    </ControlTemplate>
</Window.Resources>
<StackPanel Margin="5">
    <Button Margin="5" Padding="3" Content="普通按钮"/>
    <Button Margin="3" Padding="3" Template="{StaticResource ButtonTemplate}"><!--使用模板,以资源格式-->
        模板化按钮
    </Button>
</StackPanel>

在这里插入图片描述
我们修改了Padding属性为:Padding=“23”,但是没有发生任何属性,原因是在StackPannel中并不关注Padding的值,只关注Margin的值,要想改变,就要在模板中绑定:Margin="{TemplateBinding Padding}",让StackPannel注意按钮中内容的Margin而不是按钮的Padding。
我们设置当鼠标划过按钮时,背景颜色变为深红色,在Template中设置触发器:

<ControlTemplate.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter TargetName="border" Property="Background" Value="DarkRed"/>
    </Trigger>
</ControlTemplate.Triggers>

在这里插入图片描述
这样就实现了效果。
还可以在一个触发器中添加多个设置器:

<Trigger Property="IsPressed" Value="True">
    <Setter TargetName="border" Property="Background" Value="Blue"/>
    <Setter TargetName="border" Property="BorderBrush" Value="IndianRed"/>
</Trigger>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜的成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值