在scrollviewer wpf中禁用鼠标滚轮滚动

Lig*_*tar 5 wpf scroll scrollbar mousewheel scrollviewer

在XAML代码中

<StackPanel>
 <ScrollViewer>
  <local:CustomCanvas>
  </local:CustomCanvas>
 </ScrollViewer>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

CustomCanvs具有放大/缩小功能。但是,当我在CustomCanvas区域中旋转鼠标滚轮时,ScrollViewer的滚动条将起作用,而放大/缩小将不起作用。当我滚动ScrollViewer的滚动条时,不仅CustomCanvas的放大/缩小工作正常,而且ScrollViewer的滚动工作都很好。

旋转鼠标滚轮时,我只想放大/缩小。当我滚动滚动条时,我只想滚动即可工作。

如何防止ScrollViewer的鼠标滚轮事件使鼠标滚轮旋转?以及如何防止ScrollViewer滚动条滚动放大/缩小?请帮忙

Sam*_*Dev 5

您可以处理“自定义画布”的MouseWheel事件,以便在将鼠标指向您的画布区域并且发现滚轮事件时,请将MouseWheelEventArgs的Handled属性设置为true:

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

并在Xaml中

<StackPanel>
 <ScrollViewer>
  <local:CustomCanvas  MouseWheel="UIElement_OnMouseWheel">
  </local:CustomCanvas>
 </ScrollViewer>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)