WPF 自定义Button样式

前面几篇文章,实现了窗口样式的修改,下面开始往这个窗口里面添加各种控件,当然,所有控件都会使用自定义样式,代码也会在下方详细地列出。

窗口模板的git地址:https://github.com/gxygit/WpfTemplate

有兴趣的小伙伴,下载下来接着做喽~

wpf提供了默认的button样式,先看一下:

c5348ee7f80c98ace599e2e243fbd3de.png

按钮长的。。还算可以吧。。。

但是这怎么能满足呢,下面开始编写按钮样式咯~

<Style x:Key="TextRectButton" TargetType="{x:Type Button}">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Template" >
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ButtonBase}">
                    <Border Width="{TemplateBinding Width}" 
                            Height="{TemplateBinding Height}" 
                            Background="{TemplateBinding Background}"
                            BorderBrush="Black"
                            BorderThickness="0.8"
                            CornerRadius="3"
                            Padding="2"
                            x:Name="border"
                            >
                        <TextBlock Text="{TemplateBinding Content}" 
                                   VerticalAlignment="Center" HorizontalAlignment="Center"
                                   Foreground="{TemplateBinding Foreground}"
                                   FontSize="{TemplateBinding FontSize}"
                                   FontFamily="{TemplateBinding FontFamily}"
                                   x:Name="text"
                                   />
                    </Border>
                    <ControlTemplate.Triggers>
                        <EventTrigger RoutedEvent="MouseEnter">
                            <BeginStoryboard>
                                <Storyboard >
                                    <ColorAnimation To="#57A64A" Duration="0:0:0.3" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.Color"/>
                                    <ColorAnimation To="#FFFFFF" Duration="0:0:0.3" Storyboard.TargetName="text" Storyboard.TargetProperty="Foreground.Color"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                        <EventTrigger RoutedEvent="MouseLeave">
                            <BeginStoryboard>
                                <Storyboard >
                                    <ColorAnimation To="#0057A64A" Duration="0:0:0.3" Storyboard.TargetName="border" Storyboard.TargetProperty="Background.Color"/>
                                    <ColorAnimation To="#000000" Duration="0:0:0.3" Storyboard.TargetName="text" Storyboard.TargetProperty="Foreground.Color"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
</Style>

  样式写好以后,在窗口里面加上引用就行咯~

7ad218e4c31232844b577283a8ce8777.png

来看一下效果吧~

a60d78a2582921e64abfa2b6f6629c41.png

当然,如果你觉得颜色不合适,可以自行修改~

这次就先写到这里了,欢迎吐槽~

获取更多知识,公众号:dotNET编程大全,扫码关注!

90e22073412eec2073b5d229cff55ae1.png

需加微信交流群的,请加小编微信号z438679770,切记备注 加群,小编将会第一时间邀请你进群!

 每日分享不易,"在看"就是鼓励!

54afaa7d8da5d6331853cba7264d6aef.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值