在Windows 10通用应用程序中滚动查看器的问题?

时间:2015-08-11 12:56:55

标签: c# xaml scrollview windows-10

我正在开发一个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事件被解雇但当我试图用鼠标滚轮滚动时,事件没有被解雇,我无法继续。 请帮助找出问题所在。 感谢

2 个答案:

答案 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);
        }
    }