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

时间:2014-12-19 14:38:52

标签: wpf scroll scrollbar scrollviewer mousewheel

在xaml代码中

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

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

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

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

1 个答案:

答案 0 :(得分:3)

您可以处理自定义画布的MouseWheel事件,这样当鼠标指向您的画布区域并且确定了滚动事件时,您将MouseWheelEventArgs的Handled属性设置为true:

 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>