WPF隧道按钮点击
本文关键字:按钮 隧道 WPF | 更新日期: 2023-09-27 18:05:29
这是我的第一个问题,所以请放心:)
我是WPF和基于桌面的应用程序的新手,我正在学习事件处理。通过鼓泡和隧道我找不到一个例子,解释如何在Button_Click上使用隧道。
基本上,当我单击一个按钮时,我需要父控件(在本例中是一个网格)首先处理事件,并在允许Button_Click发生之前进行一些检查。我遇到的问题是,我可以使用Grid_PreviewMouseDown来捕获事件,但这是模糊的!它没有告诉我(至少我认为它没有告诉我)是哪个控件触发了处理程序。
我能做些什么来确定PreviewMouseDown是由按钮点击触发的?或者:是否有一个替代/更好的是隧道Button_Click?
谢谢
在处理程序中,您应该检查事件的Source
以获得启动它的控件。请注意,它不是只读的,并且可以更改,以便Source
引用不同的控件。
你可能会有更好的运气与PreviewMouseLeftButtonDown
事件注册获得左点击,而不仅仅是任何点击。
如果处理程序只查找鼠标左键,可以使用以下代码:
private void Grid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Button button = e.Source as Button;
if (button != null)
{
// button is being clicked, handle it
}
}