C# 禁用ScrollViewer的触摸体验增强

WPF里面想要让超出屏幕的内容可以显示,我们很自然的就想到了ScrollViewer。

将内容限制在ScrollViewer里面,这样就可以实现滚动。

但是ScrollViewer原生事件里面有一个边缘触摸增强的事件 OnManipulationBoundaryFeedback

他会导致用户触摸交互发生边界限制时提供反馈,比如拖动一个元素达到窗口边缘时,

OnManipulationBoundaryFeedback事件发生在manipulation完成操作前,在用户移动手指时触发,

如果不想要这种效果的话,可以参考以下代码:

public class ScrollViewerEx : ScrollViewer
{
     protected override void OnManipulationBoundaryFeedback(ManipulationBoundaryFeedbackEventArgs e)
     {
         e.Handled = true;
     }
}

写一个类 继承自ScrollViewer,在里面标志已处理,使用到ScrollViewer的地方全部换成ScrollViewerEx,这样就不会触发触摸体验增强效果了,当然,你也可以利用这个重写,来实现更加炫酷的触摸体验。

posted @ 2026-08-10 10:17  Poetindusk  阅读(0)  评论(0)    收藏  举报