我正在开发一个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>
在我的代码后面我写了一个事件来处理Scroll改变了这个
private void MyScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
//My business logic goes here
}
对于每个支点项目,都有要滚动的内容。
当我运行应用程序时会发生什么 当我试图从右侧的滚动条滚动时,我的MyScrollViewer_ViewChanged事件被解雇但当我试图用鼠标滚轮滚动时,事件没有被解雇,我无法继续。 请帮助找出问题所在。 感谢
答案 0 :(得分:0)
您的滚动查看器中的枢轴正在拦截您的触摸和鼠标滚轮交互,这就是您没有使用鼠标滚轮接收任何内容的原因。
在滚动查看器中放置一个轴非常奇怪。你想要达到什么样的行为?如果要在每个枢轴项中垂直滚动,则应在每个数据透视表中放置一个滚动查看器,而不是在数据透视表周围。
答案 1 :(得分:0)
我有同样的问题,我这样修好了,但我希望我们找到一个更好的方法,因为它有错误。
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);
}
}