【问题标题】:Change button when hovered悬停时更改按钮
【发布时间】:2016-09-30 23:17:55
【问题描述】:

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

public MainWindow()
{
    InitializeComponent();

}
private void btnNo_Click(object sender, RoutedEventArgs e)
{

}

【问题讨论】:

  • 代码会有所帮助。见这里,但不是改变图像源属性改变位置how-do-i-change-an-image-on-hover-over-in-wpf
  • ...投反对票的不是我,因为原则上我永远不会投反对票。耸耸肩。只要确保做更多的研究,并发布您当前的代码,无论它多么简单。这给了我们一些话题,并表明您愿意撰写一篇详尽的帖子。
  • 我没有发布任何代码,因为我没有任何东西,甚至在谷歌上都找不到任何好东西......我添加了按钮代码

标签: c# wpf


【解决方案1】:

您可以将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;
}

【讨论】:

  • 这行得通,但我希望它可以无限期地这样做,每次悬停时它都会不断改变位置......它只在 atm 工作一次
  • 代码中的newPosition始终与示例相同。您可以根据当前位置设置newPosition
【解决方案2】:

假设您希望在停止将鼠标悬停在其上时将其移回,您可以在纯 XAML 中通过在 Button 的 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>

【讨论】:

    猜你喜欢
    • 2021-05-19
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 2012-07-13
    • 2017-07-28
    • 2010-12-16
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多