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