首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当鼠标在上面时,如何改变图像按钮的颜色?

当鼠标在上面时,如何改变图像按钮的颜色?
EN

Stack Overflow用户
提问于 2022-04-06 03:43:46
回答 1查看 132关注 0票数 1

我创建了一个Button,您可以在下面看到一个图像:

我使用了以下XAML代码来创建这个Button

代码语言:javascript
复制
<Button Grid.Column="3" Style="{StaticResource MaterialDesignFlatButton}" Padding="0"
        ToolTip="Settings" Width="30"
        IsEnabled="{Binding DataContext.ControlsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}">
    <materialDesign:PackIcon Kind="Cog" Width="32" Height="32" VerticalAlignment="Center" HorizontalAlignment="Center">
        <materialDesign:PackIcon.Style>
            <Style TargetType="materialDesign:PackIcon">
                <Setter Property="Foreground" Value="WhiteSmoke" />
                <Setter Property="Opacity" Value="0.7" />
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="Foreground" Value="White" />
                        <Setter Property="Opacity" Value="1" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </materialDesign:PackIcon.Style>
    </materialDesign:PackIcon>
</Button>

我的问题是,只有当鼠标在图标上,而不是在Button上时,图标的颜色才会改变。当鼠标在Button上时,我希望它改变颜色。

如何在我的代码中修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-06 07:21:06

可以使用RelativeSource绑定引用父ButtonIsMouseOver属性。

代码语言:javascript
复制
<Style.Triggers>
   <DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType={x:Type Button}}}" Value="True">
      <Setter Property="Foreground" Value="White" />
      <Setter Property="Opacity" Value="1" />
   </DataTrigger>
</Style.Triggers>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71760809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档