2013-07-07 28 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)以確保不斷繪製幀。

相關問題