【问题标题】:Tablet WPF Windows Desktop Application - Scrolling issue平板电脑 WPF Windows 桌面应用程序 - 滚动问题
【发布时间】:2013-04-14 03:10:48
【问题描述】:
我正在平板电脑 ASUS ME400 Intel Atom Z2760 上运行我的桌面应用程序 WPF。一切正常,但是当我使用scrollviewer时,在用手指滚动结束时用手指滚动移动(支持平移模式horizontalOnly),窗口移动,你会看到任务栏片刻。如果我用手指滚动看不到效果,直到在滚动条中找到。
如何避免这种窗口移动?当我在滚动条的末尾滚动时如何锁定我的窗口并且不允许移动?
【问题讨论】:
标签:
c#
wpf
windows-8
scrollview
scrollviewer
【解决方案1】:
在您已启用平移的ScrollViewer 对象中,为ManipulationBoundaryFeedback 注册一个新事件。
<ScrollViewer PanningMode="Both" ManipulationBoundaryFeedback="ScrollViewer_ManipulationBoundaryFeedback">
<!-- your content is here... -->
</ScrollViewer>
在代码隐藏中,您必须通过将Handled 属性设置为true 来处理事件:
void ScrollViewer_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}
(通过将Handled 属性设置为true,我们实际上是在告诉我们该事件已经被我们处理了,所以我们在消息到达之前停止可视树中的冒泡过程Window/Application - 无论哪个会引起震动。)