0
让我们假设一个形状已经创建并添加到画布。事件处理程序可以添加比方说,一个鼠标左键向上事件是这样的:通过画布形状的气泡事件
System.Windows.Shapes.Rectangle r = new Rectangle(...);
r += r_MouseLeftButtonUp;
// Maybe other event handlers added...
Canvas.Children.Add(r);
所以这伟大工程。事件处理程序被触发,除非在与第一个形状重叠的同一个画布上创建另一个形状。有没有什么办法通过鼠标光标位置下的所有形状触发mouseLeftButtonUp事件?
这种方法有两个问题。其一,我不想仅仅为矩形发射事件,而是为鼠标光标下的任何形状发射事件。椭圆,多段线,你的名字。二,我需要一个额外的如果每个形状来检查它是否在鼠标光标下。我想摆脱这种方法,因为它感觉沉重而且受阻。 – roymcclure
长方形儿童的迭代只是一个概念。您可以获取鼠标坐标,并限制所击中和相交的呼叫。只要它是UIElement类型的,你可以将它应用于任何儿童。它看起来像你想在内部路由不是为同一个兄弟姐妹设计的路由事件 - 它需要一个工作或去自定义路由事件。 – tgpdyk