假设已经创建了一个形状并将其添加到画布中 . 可以添加一个事件处理程序,让我们说左鼠标按钮事件如下:
System.Windows.Shapes.Rectangle r = new Rectangle(...);
r += r_MouseLeftButtonUp;
// Maybe other event handlers added...
Canvas.Children.Add(r);
所以这很有效 . 除非在与第一个形状重叠的同一画布上创建另一个形状,否则将触发事件处理程序 . 有没有办法通过鼠标光标位置下的所有形状启动mouseLeftButtonUp事件?
1 回答
只要有可用于任何形状的可点击部分,重叠就应该起作用 . 如果这里的问题是由于其上面的另一个形状(不再可点击)而变得隐藏的形状,您可以使用Canvas调用您的处理程序 .
当您左键单击Canvas时,这将设置EventHandler . 我们可以在画布的每个Shape子元素上调用处理程序 .