在 WPF 中如何控制另一个按钮是否被点击
In WPF how can I control whether another button clicked
我想确定在 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++;
}
}
如何控制它?
只需将您的其他 Button
添加为活动的 订阅者。
<Button Click="btnDashboard_Click" ... />
<Button Click="btnDashboard_Click" ... />
并且在您的事件方法中,您可以获取被单击的按钮:
Button btn = sender as Button;
然后,您可以将动画应用到所需的按钮:
btn.BeginAnimation(FrameworkElement.WidthProperty, anim);
注意:以上代码引用了btn
,可以是被点击的两个按钮之一。
如果您需要更进一步,根据被点击的特定按钮应用动画,您可以给每个按钮一个 Name
并在 [=28] 中测试 btn.Name
=]if语句.
如果您想对两个按钮使用相同的点击处理程序,试试这个:
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 中设置了名称 属性,以便您可以在代码隐藏中访问它。
在 XAML:
<Grid>
<Button Name="btn1" Click="btnDashboard_Click"/>
<Button Name="btn2" Click="btnDashboard_Click"/>
</Grid>
我想确定在 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++;
}
}
如何控制它?
只需将您的其他 Button
添加为活动的 订阅者。
<Button Click="btnDashboard_Click" ... />
<Button Click="btnDashboard_Click" ... />
并且在您的事件方法中,您可以获取被单击的按钮:
Button btn = sender as Button;
然后,您可以将动画应用到所需的按钮:
btn.BeginAnimation(FrameworkElement.WidthProperty, anim);
注意:以上代码引用了btn
,可以是被点击的两个按钮之一。
如果您需要更进一步,根据被点击的特定按钮应用动画,您可以给每个按钮一个 Name
并在 [=28] 中测试 btn.Name
=]if语句.
如果您想对两个按钮使用相同的点击处理程序,试试这个:
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 中设置了名称 属性,以便您可以在代码隐藏中访问它。 在 XAML:
<Grid>
<Button Name="btn1" Click="btnDashboard_Click"/>
<Button Name="btn2" Click="btnDashboard_Click"/>
</Grid>