您可以創建一個自定義控制,從VariableSizeGridView覆蓋和聽,因爲你做的,到ScrollViewer中。由於您可以訪問GridView的最新元素,因此在開始加載更多元素後,可以將scrollviewer設置爲最新的位置位置。獲得目視參考該元素,然後調用此代碼:
FrameworkElement focusedElement = FocusManager.GetFocusedElement() as FrameworkElement;
GeneralTransform focusedVisualTransform = parent.TransformToVisual(_scrollViewer);
ApplyHorizontalScrolling(focusedElement, focusedVisualTransform);
private void ApplyHorizontalScrolling(FrameworkElement focusedElement, GeneralTransform focusedVisualTransform)
{
Rect rectangle = focusedVisualTransform.TransformBounds(new Rect(new Point(focusedElement.Margin.Left, focusedElement.Margin.Top), focusedElement.RenderSize));
double horizontalOffset = _scrollViewer.HorizontalOffset + (rectangle.Left);
_scrollViewer.ChangeView(horizontalOffset, 0, _scrollViewer.ZoomFactor);
}
使用和tunning這段代碼,將幫助你防止滾動條到最新的位置。
謝謝,我實際上做了一些不同的事情,我在新項目出現之前存儲了滾動查看器的最後位置,並且在滾動查看器大小更改之後,我將水平滾動設置爲之前的值;)無論如何,謝謝! – DVD