0
我用我的Windows Store应用程序的ScrollViewer,但调用SetHorizontalOffset功能有时ScrollViewer中不改变水平滚动之后。垂直滚动也是一样。有人知道如何使用它吗?可能的ScrollViewer仅供能见度偏移滚动(我的意思是,如果它看到,用户可以看到抵消其完全不滚动)的ScrollViewer和SetHorizontalOffset
我用我的Windows Store应用程序的ScrollViewer,但调用SetHorizontalOffset功能有时ScrollViewer中不改变水平滚动之后。垂直滚动也是一样。有人知道如何使用它吗?可能的ScrollViewer仅供能见度偏移滚动(我的意思是,如果它看到,用户可以看到抵消其完全不滚动)的ScrollViewer和SetHorizontalOffset
它出现在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)以确保不断绘制帧。
你确定你计算正确的偏移?确保偏移量小于“ScrollableWidth/Height”。如果您想浏览其他内容的末尾,那么你就需要一些缓冲空间添加到您的内容结束。 –