【问题标题】:In WPF how can I control whether another button clicked在 WPF 中,如何控制是否单击了另一个按钮
【发布时间】:2015-08-30 14:44:28
【问题描述】:

我想确定在 WPF 中单击了另一个按钮。 我编写了与下面相同的代码,当我单击该按钮后,当我单击相同的按钮时,动画将像 else 块一样工作。但我想控制是否点击了另一个按钮,而不是我想处理 else 块。

int i = 0;
private void btnDashboard_Click(object sender, RoutedEventArgs e)
{
    // btnDashboard.Click += btnDashboard_Click;
    // Button btnSender = (Button)sender;
    if (i%2==0)
    {
        DoubleAnimation anim = new DoubleAnimation(250, 1470, new Duration(TimeSpan.FromMilliseconds(300)));
        btnDashboard.BeginAnimation(FrameworkElement.WidthProperty, anim);
        ((ApplicationShell)App.Current.MainWindow).ShowPages(new UCDashboardIndicatorView());
        i++;
    }
    else
    {
        DoubleAnimation anim = new DoubleAnimation(1470, 250, new Duration(TimeSpan.FromMilliseconds(300)));
        btnDashboard.BeginAnimation(FrameworkElement.WidthProperty, anim);
        base.OnApplyTemplate();
        i++;
    }

}

我该如何控制它?

【问题讨论】:

  • 不清楚,有什么问题。只需为您要控制的按钮编写另一个 Click 处理程序,或重新表述问题。
  • 在我的代码中,当我点击同一个按钮时,动画会起作用。但我想控制是否单击另一个按钮,然后动画应该改变

标签: c# wpf button mouseevent


【解决方案1】:

只需将您的其他 Button 添加为活动的订阅者

<Button Click="btnDashboard_Click" ... />
<Button Click="btnDashboard_Click" ... />

在你的事件方法中,你可以获取被点击的按钮:

Button btn = sender as Button;

然后,您可以将动画应用到所需的按钮:

btn.BeginAnimation(FrameworkElement.WidthProperty, anim);

注意:上面的代码引用了btn,它可能是被点击的两个按钮之一

如果您需要通过应用基于被点击的特定按钮的动画来更进一步,您可以给每个按钮一个 Name 并在 if 语句中测试 btn.Name .

【讨论】:

    【解决方案2】:

    如果你想对两个按钮使用相同的点击处理程序,试试这个:

    private void btnDashboard_Click(object sender, RoutedEventArgs e)
    {
       Button btnSender = sender as Button;
       if(btnSender.Name == "btn1")
        {
          //Code for Button1
        }
        else
        {
          //Code for Button2
        }
    }
    

    还要确保每个按钮都在 XAML 中设置了 Name 属性,以便您可以在后面的代码中访问它。 在 XAML 中:

    <Grid>
       <Button Name="btn1" Click="btnDashboard_Click"/>
       <Button Name="btn2" Click="btnDashboard_Click"/>
    </Grid>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      相关资源
      最近更新 更多