鼠标悬停时改变按钮

本文关键字:按钮 改变 悬停 鼠标 | 更新日期: 2023-09-27 18:09:40

我是一个初学者,我正在寻找一种简单的方法来使WPF应用程序中的按钮在悬停时移动。

public MainWindow()
{
    InitializeComponent();
}
private void btnNo_Click(object sender, RoutedEventArgs e)
{
}

鼠标悬停时改变按钮

您可以将Button放在Grid中,并在按钮的MouseEnter事件中更改其Margin,如下所示:

private void ChangePosition(object sender, RoutedEventArgs e)
{
    var button = (Button)sender;
    var newPosition = new Thickness(10, 90, 40, 80); // assuming this is your new position
    button.Margin = newPosition;
}

假设您想让它在停止悬停时向后移动,您可以在纯XAML中通过在按钮的IsMouseOver属性上使用样式和属性触发器来实现这一点。(样式更典型的用法是将其创建为资源,并在各种按钮之间共享)。

    <Button x:Name="button" Content="Button" Height="40" Width="60">
        <Button.Style>
            <Style TargetType="Button">
                <Style.Triggers>
                    <Trigger Property="IsMouseOver" Value="True">
                        <Setter Property="RenderTransform">
                            <Setter.Value>
                                <TranslateTransform X="10" Y="10"/>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>