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」。如果您想瀏覽其他內容的末尾,那麼你就需要一些緩衝空間添加到您的內容結束。 –