windows 10通用应用中滚动查看器的问题
本文关键字:问题 滚动 10通 应用 windows | 更新日期: 2023-09-27 18:07:22
我正在开发一个windows 10通用应用程序。我的页面的基本结构是这样的
<Grid>
<ScrollViewer ViewChanged="MyScrollViewer_ViewChanged" VerticalScrollBarVisibility="Auto" VerticalScrollMode="Enabled" HorizontalScrollBarVisibility="Disabled" HorizontalScrollMode="Disabled" IsVerticalRailEnabled="True" IsVerticalScrollChainingEnabled="True">
<Pivot>
<PivotItem/>
<PivotItem/>
<PivotItem/>
<PivotItem/>
</Pivot>
</ScrollViewer>
</Grid>
在我的代码后面,我写了一个事件来处理像这样改变的滚动
private void MyScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
//My business logic goes here
}
对于每个pivot项目,都有要滚动的内容。
当我运行应用程序时发生的是当我试图从右边的滚动条滚动时,我的MyScrollViewer_ViewChanged事件被触发,但当我试图用鼠标滚轮滚动时,事件没有被触发,我无法继续。请帮忙找出这个问题。由于
你的滚动查看器内部的枢轴是拦截你的触摸和鼠标滚轮的交互,这就是为什么你没有收到任何与你的鼠标滚轮。
在滚动查看器中放置枢轴是非常非常奇怪的。你想要达到什么样的行为?如果你想在每个数据透视项中垂直滚动,你应该在每个数据透视项中放置一个滚动查看器,而不是在数据透视项周围。
我有同样的问题,我像这样修复它,但我希望我们找到一个更好的方法,因为它的bug。
private void PivotItem_PointerWheelChanged(object sender, PointerRoutedEventArgs e)
{
if (e.GetCurrentPoint(scrollViewer).Properties.MouseWheelDelta == (-120))
{
// On Mouse Wheel scroll Backward
scrollViewer.ChangeView(null, scrollViewer.VerticalOffset + Window.Current.CoreWindow.Bounds.Height / 10, null, false);
}
if (e.GetCurrentPoint(scrollViewer).Properties.MouseWheelDelta == (120))
{
// On Mouse Wheel scroll Forward
scrollViewer.ChangeView(null,scrollViewer.VerticalOffset - Window.Current.CoreWindow.Bounds.Height / 10, null, false);
}
}