C# WPF:单击画布内嵌套路径上的检测
我在画布中有一组编程嵌套的路径。我基本上是想弄清楚点击冒泡是如何工作的。如何设置画布事件处理程序,以检查单击点是否也位于画布内部嵌套的路径上。这是我的基本偶数代码,如果路径没有嵌套,它就可以工作 如何添加冒泡点击检测C# WPF:单击画布内嵌套路径上的检测,c#,wpf,canvas,path,C#,Wpf,Canvas,Path,我在画布中有一组编程嵌套的路径。我基本上是想弄清楚点击冒泡是如何工作的。如何设置画布事件处理程序,以检查单击点是否也位于画布内部嵌套的路径上。这是我的基本偶数代码,如果路径没有嵌套,它就可以工作 如何添加冒泡点击检测 void Path_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { var item = ((FrameworkElement)e.OriginalSource).DataContext as Path;
void Path_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var item = ((FrameworkElement)e.OriginalSource).DataContext as Path;
if (item != null)
{
MessageBox.Show(item.Name);
}
}
在画布上的事件UIElement.MouseLeftButtonUpEvent(路径从那里继承)上添加一个处理程序
theNestingCanvas.AddHandler(UIElement.MouseLeftButtonUpEvent , new RoutedEventHandler(target));
private void handler(object asd, RoutedEventArgs e)
{
Path p = e.OriginalSource as Path;
if (p != null)
{
//do whatever
}
e.Handled = true;
}
就像您捕获画布中尚未在其他地方处理的所有冒泡UIElement.MouseLeftButtonUp事件一样
当然,您也可以在EventPath.MouseLeftButtonUpEvent
上添加处理程序,但之后您会问自己为什么还要捕获其他嵌套元素的MouseUp事件