2013-04-09 9 views
0

접지 플레인을 그리는 사용자 지정 CanvasControl이 있습니다. 나는 CanvasControl에 새로운 Canvas을 붙인다. 그게 내가 그린 것이다. 또한 MouseWheel 이벤트를 설정합니다. 내가 성능을 향상시키기 위해 IsHitTestVisible = false을 설정하려는 의미WPF 캔버스, 마우스 휠 이벤트 허용

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

요소의 많은 drawingCanvas 그려 얻을하지만 (줌 수정에서 떨어져)이 변경되지 않습니다 여전히 CanvasControl 자체에 MouseWheel 이벤트를 받아들이는 동안 (이득은 엄청난 것입니다) . 불행히도이 작업을 수행하면 MouseWheel을 사용할 수있는 능력이 없어집니다. 내가 빠진 것이 있습니까?

drawingCanvas.IsHitTestVisible = false; 

답변

4

, 당신은 Transparent에 예를 들어, 그 Background 속성을 설정해야합니다 최상위 캔버스에 직접 입력 이벤트를 얻기 위하여 :

Background = Brushes.Transparent; 
MouseWheel += Groundplane_MouseWheel; 
+0

재미있는 .. 이것은 (하지만 작동 제는 DrawingCanvas 때문에 번역됨) 패닝이 이제는 b0rked되었습니다. 나는이 비트를 고치는 방법을 실제로 모른다. – Chris

+0

글쎄, 당신은 당신의 패닝이 어떻게 작동하는지에 관해 많이 설명하지 않았다. 그러나 CanvasControl에서'MouseDown','MouseMove' 및'MouseUp' 이벤트를 처리하고, 마우스 이동 중에 적절한 패닝 변환을 계산하여이를'drawingCanvas'에 적용 할 수 있다고 생각합니다. – Clemens