2012-06-05 19 views
4

我正在使用Windows 8 Metro應用程序,並且顯示帶有顯示不同寬度的幾百個項目的GridView。我正在使用VirtualizingStackPanel來幫助改善內存消耗。我需要將一個項目滾動到GridView的中心。使用GridView.ScrollIntoView或VirtualizingStackPanel.SetHorizo​​ntalOffset將項目滾動到屏幕邊緣,而不是中心。在Windows 8中將項目滾動到VirtualizingStackPanel的中心Metro

This post討論了類似的問題,但在WPF方面。問題在於:a)不能編譯Metro應用程序,因爲少數對象不存在; b)邏輯滾動的實現似乎取決於寬度相等的項目。

這個問題的最佳解決方案是什麼?框架中是否有可以使這個簡單的東西?

回答

1

ScrollIntoView工作,但你需要調用它像這樣:

await Dispatcher.RunAsync(CoreDispatcherPriority.Low, 
         () => { this.gridView.ScrollIntoView(yourItem); }); 
+0

我們可以使用上面的代碼片斷如果GridView控件進行分組和語義變焦裏面,因爲在我的情況下,它不工作。 –

相關問題