我有一个为触摸显示器构建的全屏 WPF 应用程序,并且我有一些Listbox
s 在主屏幕上。
当我轻弹“列表框”时,它滚动得很好,但是当它到达列表末尾时,entire应用程序从屏幕顶部下拉,我可以以某种方式停止这种行为吗?
还有其他人看过这个吗?
是的,ListBox 的默认行为(或者更确切地说,默认 ListBox 模板内的 ScrollViewer)is很奇怪——当我第一次看到它时,我认为这一定是一个恶作剧。事实上,很难找到任何关于它的文档 - 但它被简要提及here http://msdn.microsoft.com/en-us/library/ms754010.aspx#touch_and_manipulation:
ManipulationBoundaryFeedback 事件使应用程序或组件能够在对象触及边界时提供视觉反馈。例如,Window 类处理 ManipulationBoundaryFeedback 事件,以使窗口在遇到其边缘时稍微移动。
因此,解决这个问题的方法是处理 ListBox 上的 ManipulationBoundaryFeedback,并将 Handled 设置为 true:
<ListBox ManipulationBoundaryFeedback="OnManipulationBoundaryFeedback">
// ...
</ListBox>
隐藏代码:
private void OnManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)