我有一个自定义的Canvas控件(继承自Canvas)覆盖在大面积的用户控件上。想法是在用户控件(即连接线)之间绘制路径。
要捕获鼠标移动,我在MouseDown上调用Mouse.Capture(theCanvas)
。这很好用,但画布下的用户控件显然不再接收鼠标事件。 Mouse.DirectlyOver
总是显示画布,所以我不能通过窥视当前位置并查看哪个用户控制它来完全伪造它。
所以,我仍然需要画布来绘制路径,但我怎样才能解决以下方法之一:
欢迎任何其他想法......
答案 0 :(得分:0)
我同意这些是你的两个选择。如果您只想将一些点击转发给您的用户控件,那么请使用选项1,然后点击测试画布下的控件。
如果你需要你的用户控件表现得好像什么都没有覆盖它们(文本框,按钮等),那么我建议在用户控件的父级上使用PreviewMouseMove事件,因为这可以选择并且可选控件到达事件之前“处理”事件,但如果未将handle设置为true,则不会阻止事件