WPF画布,接受鼠标滚轮事件

Chr*_*ris 1 wpf canvas mousewheel

我有一个CanvasControl绘制地面的习惯。我CanvasCanvasControl自己添加了一个新的东西。我还设置MouseWheel事件。

Canvas drawingCanvas = new Canvas();
this.Children.Insert(0, drawingCanvas);
MouseWheel += new MouseWheelEventHandler(Groundplane_MouseWheel);
Run Code Online (Sandbox Code Playgroud)

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

drawingCanvas.IsHitTestVisible = false;
Run Code Online (Sandbox Code Playgroud)

Cle*_*ens 5

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

Background = Brushes.Transparent;
MouseWheel += Groundplane_MouseWheel;
Run Code Online (Sandbox Code Playgroud)