WPF 三态按钮(PNG贴图)。。。。。。。。。。。

本文详细介绍了按钮样式设计的实现过程,包括鼠标悬停和点击时的视觉变化,并展示了如何通过XAML代码实现这些交互效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    <Window.Resources>
<Style x:Key="ButtonLeft" TargetType="{x:Type Button}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <StackPanel Orientation="Horizontal">
                            <Image Name="minBtn" Source="/FingerPrint;component/Resources/BG_btn_normal.png" />
                        </StackPanel>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Source" Value="/FingerPrint;component/Resources/BG_btn_hover.png" TargetName="minBtn" />
                            </Trigger>
                            <Trigger Property="IsPressed" Value="True">
                                <Setter Property="Source" Value="/FingerPrint;component/Resources/BG_btn_click.png" TargetName="minBtn" />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    </Window.Resources>

        <Button   Content="Button" Height="31" HorizontalAlignment="Left" Margin="269,95,0,0" Name="button1" VerticalAlignment="Top" Width="143" Foreground="#FFDE4747" Focusable="True" BorderBrush="{x:Null}" BorderThickness="0" Style="{StaticResource ButtonLeft}">
        </Button>



        <Style x:Key="RadioLeft" TargetType="{x:Type RadioButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type RadioButton}">
                        <StackPanel Orientation="Horizontal" >
                            <ContentControl Name="BtnFont" VerticalAlignment="Center"  Content="{TemplateBinding Content}"  FontFamily="Microsoft JhengHei" FontWeight="Bold" FontSize="16" Foreground="#7d7d7d" />
                            <Image Stretch="None" VerticalAlignment="Center" Margin="5,0,0,0" Name="BtnBackGround" Source="{x:Null}" />
                        </StackPanel>
                        <ControlTemplate.Triggers>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsMouseOver" Value="True"/>
                                    <Condition Property ="IsChecked" Value="False" />
                                </MultiTrigger.Conditions>

                                <Setter Property="Foreground" Value="#FFFFFF" TargetName="BtnFont" />

                            </MultiTrigger>

                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="IsPressed" Value="True"/>
                                    <Condition Property ="IsChecked" Value="False" />
                                </MultiTrigger.Conditions>
                                <Setter Property="Foreground" Value="#7d7d7d" TargetName="BtnFont" />
                            </MultiTrigger>


                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property ="IsChecked" Value="True" />
                                </MultiTrigger.Conditions>
                                <Setter Property="Source" Value="/FingerPrint;component/Resources/label.png " TargetName="BtnBackGround" />
                                <Setter Property="Foreground" Value=" #7ebdff" TargetName="BtnFont" />
                            </MultiTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值