繁体   English   中英

WPF“ IsMouseOver”触发器未正确显示按钮

[英]WPF “IsMouseOver” Trigger not Displaying Button Correctly

我有两个png图像,经过三重检查以确保它们正确透明。 这是按钮样式代码:

<Window.Resources>
        <Style x:Key="TrackingButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
            <Style.Triggers>
                <!--Default Base-->
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Content">
                        <Setter.Value>
                            <Image Source="Resources/Start_Base.png"/>
                        </Setter.Value>
                    </Setter>
                </Trigger>
                <!--Hover-->
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Content">
                        <Setter.Value>
                            <Image Source="Resources/Start_Hover.png"/>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
            <!--Default Style-->
            <Style.Setters>
                <Setter Property="Background">
                    <Setter.Value>
                        <SolidColorBrush Color="Transparent"/>
                    </Setter.Value>
                </Setter>
                <Setter Property="BorderBrush">
                    <Setter.Value>
                        <SolidColorBrush Color="Transparent"/>
                    </Setter.Value>
                </Setter>
            </Style.Setters>
        </Style>
    </Window.Resources>

这是按钮的默认状态: DefaultState但是,将鼠标悬停在该按钮上时,它会失去透明性,并且在应该透明的区域周围会出现白色边框: HoveredOver

我不确定这是怎么回事。

如果要摆脱镶边,则可以定义自己的自定义ControlTemplate

<Style x:Key="TrackingButton" TargetType="Button" BasedOn="{StaticResource {x:Type Button}}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Image x:Name="img" Source="Resources/Start_Base.png"/>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter TargetName="img" Property="Source" Value="Resources/Start_Hover.png" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM