2013-07-07 25 views
0

我用我的Windows Store应用程序的ScrollViewer,但调用SetHorizo​​ntalOffset功能有时ScrollViewer中不改变水平滚动之后。垂直滚动也是一样。有人知道如何使用它吗?可能的ScrollViewer仅供能见度偏移滚动(我的意思是,如果它看到,用户可以看到抵消其完全不滚动)的ScrollViewer和SetHorizo​​ntalOffset

+0

你确定你计算正确的偏移?确保偏移量小于“ScrollableWidth/Height”。如果您想浏览其他内容的末尾,那么你就需要一些缓冲空间添加到您的内容结束。 –

回答

0

它出现在ScrollViewer中的一帧偏移滞后。

如果下面的代码运行的每一帧,diffPrevDesiredActual始终为0。也就是说,并不会马上影响由ChangeView所提供的价值。

... 
     var scrollPosition = /*some new value*/; 

     MyScrollViewer.ChangeView(null, scrollPosition, null, true); 

     var current = MyScrollViewer.VerticalOffset; 
     var diffDesiredActual = scrollPosition - current; 
     var diffPrevDesiredActual = previous - current; 

     previous = scrollPosition; 
    ... 

    private double previous; 

如果没有你的屏幕上,当你改变滚动偏移动画,那么很可能在ScrollViewer中不会显示新的值,直到东西触发新的帧的平局。为了测试这个假设,尝试添加无限动画(例如ProgressRing)以确保不断绘制帧。

相关问题