0

我正在开发一个 WPF 项目。如果按钮的 isMouseHover 为真,我想删除按钮上的突出显示(就像图片中的蓝色)。而且我不确定它是否称为突出显示。也许它可能是效果,焦点等。我添加了 BorderBrush 是透明的,但它没有工作。代码如下:

<Image x:Key="LoginImg" Source="..\Images\Login\oturumac.png"
       Stretch="Fill"/>
<Image x:Key="LoginImg_RollOver" Source="..\Images\Login\oturumac_rollover.png"
       Stretch="Fill"/>

<Style  x:Key="LoginButtonStyle" TargetType="{x:Type Button}">
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Content" Value="{DynamicResource LoginImg_RollOver}"/>
        </Trigger>
        <Trigger Property="IsMouseOver" Value="False">
            <Setter Property="Content" Value="{DynamicResource LoginImg}"/>
        </Trigger>
    </Style.Triggers>
</Style>

图片如下。IsMouseOver 为真时的第一张图片:

在此处输入图像描述

我该如何解决?

按钮代码如下:

 <Button Background="Transparent" BorderBrush="Transparent" Style="{DynamicResource LoginButtonStyle}" Click="btnLogin_Click" HorizontalAlignment="Center"  VerticalAlignment="Top" Width="180" Grid.Column="1" Grid.Row="4" x:Name="btnLogin" TabIndex="2"/>
4

1 回答 1

2

您需要提供一个新ControlTemplateButton来摆脱默认的外观。您可以将默认值替换Button ControlTemplate为普通Image控件,然后将Style Triggers替换为ControlTemplate Triggers。尝试这个:

<Button>
    <Button.Template>
        <ControlTemplate>
            <Image Name="Image" Stretch="None" 
Source="pack://application:,,,/AppName;component/Images/Login/oturumac.png" />
            <ControlTemplate.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter TargetName="Image" Property="Source" Value="
pack://application:,,,/AppName;component/Images/Login/oturumac_rollover.png" />
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
    </Button.Template>
</Button>
于 2014-12-19T15:13:53.660 回答