2

我有一个CanvasControl画地平面的习惯。Canvas我给它本身添加了一个新的CanvasControl东西,这就是我所绘制的。我还设置了MouseWheel事件。

Canvas drawingCanvas = new Canvas();
this.Children.Insert(0, drawingCanvas);
MouseWheel += new MouseWheelEventHandler(Groundplane_MouseWheel);

许多元素被吸引drawingCanvas但从未改变(除了缩放修改),这意味着我想设置IsHitTestVisible = false以提高性能(增益很大),同时仍然接受本身MouseWheel的事件。CanvasControl不幸的是,当我这样做时,我失去了使用MouseWheel. 有什么我想念的吗?

drawingCanvas.IsHitTestVisible = false;
4

1 回答 1

7

为了直接在顶层 Canvas 上获取输入事件,您必须设置其Background属性,例如Transparent

Background = Brushes.Transparent;
MouseWheel += Groundplane_MouseWheel;
于 2013-04-09T09:30:56.453 回答