2014-12-19 4 views
1

В XAML кодеdisalbe колесо мыши прокрутки в ScrollViewer МОФ

<StackPanel> 
<ScrollViewer> 
    <local:CustomCanvas> 
    </local:CustomCanvas> 
</ScrollViewer> 
</StackPanel> 

CustomCanvs имеет увеличения/уменьшения масштаба функции. Но когда я вращаю колесо мыши в области CustomCanvas, работа прокрутки ScrollViewer и увеличение/уменьшение масштаба не работают. И когда я прокручиваю полосу прокрутки ScrollViewer, работает не только увеличение/уменьшение масштаба CustomCanvas, но и прокрутка ScrollViewer.

Я хочу, когда я вращаю колесо мыши, только увеличение/уменьшение работы. И когда я прокручиваю полосу прокрутки, прокручиваю только прокрутку.

Как я могу предотвратить событие колеса мыши ScrollViewer от скручивания колеса мыши? И как я могу предотвратить увеличение/уменьшение масштаба прокрутки полосы прокрутки ScrollViewer? Пожалуйста, помогите

ответ

1

вы могли справиться с MouseWheel Случаем пользовательских Canvas, так что, когда мышь указывает в вашей области холста и события ход заказа составляет установить Handled свойство MouseWheelEventArgs истина:

private void UIElement_OnMouseWheel(object sender, MouseWheelEventArgs e) 
    { 
     e.Handled = true; 
     //handler your zoomIn/Out here 
    } 

и в Xaml

<StackPanel> 
<ScrollViewer> 
    <local:CustomCanvas MouseWheel="UIElement_OnMouseWheel"> 
    </local:CustomCanvas> 
</ScrollViewer> 
</StackPanel> 
+0

Thankyou. Я уже это сделал. У меня есть дочернее изображение и TextBlock в CustomCanvas. Только если я вращаю колесо мыши на дочернем элементе CustomCanvas, он работает ... Почему событие MouseWheel не распространяется на другие области CustomCanvas, кроме дочерней области? В других областях, колесо событий для ScrollViewer, так что прокрутки работать. – Lightstar