WPF按钮内容图像Onmouserover更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF按钮内容图像Onmouserover更改相关的知识,希望对你有一定的参考价值。

我使用Button的内容(不是背景)作为图像,并希望在鼠标上设置另一个图像。我试图将内容设置如下,但失败了。

<Button x:Name="Test" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Margin="40,40,0,0" Height="120" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" BorderThickness="0" Click="Test_Click">
<Button.Content>
    <Image Source="Images/Test.png"></Image>                    
</Button.Content>
<Button.Style>
    <Style>
        <Style.Triggers>
            <Trigger Property="Button.IsMouseOver" Value="True">
                <Setter Property="Button.Content" Value=" <Image Source='Images/TestHover.png'></Image> " />
            </Trigger>
        </Style.Triggers>
    </Style>
</Button.Style>

答案

这很容易!检查图像的IsMouseover事件不是按钮。另外检查this有不同的方法来改变MouseOver事件上的图像。

<Button Name="testBtn" Margin="10 0 0 0" Click="TestBtn_OnClick">
    <Button.Content>
        <Image>
            <Image.Style>
                <Style TargetType="{x:Type Image}">
                    <Setter Property="Source" Value="Resources/Apps-Dialog-Close-icon.png"/>
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Source" Value="Resources/basic-grid-with-center-lines-png-14.png"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Image.Style>
        </Image>
    </Button.Content>
</Button>
另一答案

你能试试控制模板吗?

<Button Width="100" Height="100">
        <Button.Template>
            <ControlTemplate>
                <Image Name="image" Source="pack://application:,,,/images/1.png"/>
                <ControlTemplate.Triggers>
                    <Trigger  Property="Button.IsMouseOver" Value="true">
                        <Setter Property="Source" TargetName="image" Value="pack://application:,,,/images/2.png"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Button.Template>
    </Button>

以上是关于WPF按钮内容图像Onmouserover更改的主要内容,如果未能解决你的问题,请参考以下文章

在WPF中单击时更改圆形按钮背景图像

我的 WPF 按钮需要更改不同按钮的内容

WPF 在 ViewModel.PropertyChanged 事件上更改按钮内容

WPF在运行方法时更改用户控件中的按钮内容

如何更改 wpf 中按钮的内容“颜色”

WPF - 如何使用模板创建图像按钮