当我将鼠标悬停在 1 个按钮上时,我希望在 WPF 中更改另一个按钮的不透明度

问题描述 投票:0回答:1

我想将鼠标悬停在 1 个按钮上,然后在 XAML 代码中使用 WPF (C#) 中的动画,不同按钮的不透明度缓慢变化(淡出)。

我想要更改的按钮有 x:Name=”HiddenMenu”,但是下面的样式代码适用于 x:Name=”PlayMenu” 的按钮,当我将鼠标悬停在 PlayMenu 按钮上时,我想要 HiddenMenu 的不透明度按钮进行更改。在 MainWindow 中,PlayMenu 按钮将其样式引用为 ('Style="{StaticResource MyMenuButton}")。任何帮助将不胜感激,谢谢。

<Style TargetType="Button" x:Key="MyMenuButton">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <ControlTemplate.Triggers>
                    <EventTrigger RoutedEvent="MouseEnter">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation x:Name="HiddenMenu" Storyboard.TargetProperty="Opacity" To="0" Duration="0:0:0.2" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
wpf xaml animation button hover
1个回答
0
投票

我认为这可能会解决您的问题:

    <Button x:Name="button1">
            <Button.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Opacity" TargetName="button2" Value="0.5"/>
                </Trigger>
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Opacity" TargetName="button2" Value="0"/>
                </Trigger>
            </Button.Triggers>
        </Button>

在此示例中,button1 是您的按钮,button2 是当鼠标悬停在按钮 1 上时淡化不透明度的按钮。

© www.soinside.com 2019 - 2024. All rights reserved.