我有一个自定义的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;

最佳答案

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

Background = Brushes.Transparent;
MouseWheel += Groundplane_MouseWheel;

关于wpf - WPF Canvas ,接受鼠标滚轮事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15897275/

10-13 03:47