我有一个 6x8 的System.Windows.Controls.Canvas
对象网格。左上角的画布不接收鼠标事件,而所有其他画布都接收。我试过OnMouseMove
和OnMouseClick
事件。
子对象没有处理事件,因为System.Windows.Media.VisualTreeHelper#GetChildrenCount()
没有显示任何子对象。我也抓不住PreviewOnMouseMove
。我的画布前面是否有一些(可能是透明的)控件优先?
我有一个 6x8 的System.Windows.Controls.Canvas
对象网格。左上角的画布不接收鼠标事件,而所有其他画布都接收。我试过OnMouseMove
和OnMouseClick
事件。
子对象没有处理事件,因为System.Windows.Media.VisualTreeHelper#GetChildrenCount()
没有显示任何子对象。我也抓不住PreviewOnMouseMove
。我的画布前面是否有一些(可能是透明的)控件优先?
终于找到了解决办法。每个Canvas
es 都有Adorner
s。根据这篇 MSDN 文章,装饰器在底层 UI 元素之前接收鼠标事件。我将IsHitTestVisible
所有装饰者的属性设置为false
.
我希望这对您有所帮助,只需为以下属性设置Transparent
值:Background
Canvas
Background="Transparent"
祝你好运!