【问题标题】:disable mouse wheel scrolling in scrollviewer wpf在scrollviewer wpf中禁用鼠标滚轮滚动
【发布时间】:2018-04-11 18:33:04
【问题描述】:

在 xaml 代码中

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

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

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

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

【问题讨论】:

    标签: wpf scroll scrollbar scrollviewer mousewheel


    【解决方案1】:

    您可以处理自定义画布的 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>
    

    【讨论】:

    • 谢谢。我已经这样做了。我在 CustomCanvas 中有子图像和文本块。只有当我在 CustomCanvas 的子级上旋转鼠标滚轮时,它才能工作...为什么 MouseWheel 事件不会在 CustomCanvas 的其他区域(子区域除外)中发生?在其他区域,ScrollViewer 的滚轮事件准确,因此滚动工作。
    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    相关资源
    最近更新 更多