4

我正在开发一个 Windows 8 Metro 应用程序,并有一个 GridView,其中显示了数百个不同宽度的项目。我正在使用 VirtualizingStackPanel 来帮助改善内存消耗。我需要将一个项目滚动到 GridView 的中心。使用 GridView.ScrollIntoView 或 VirtualizingStackPanel.SetHorizo​​ntalOffset 会将项目滚动到屏幕边缘,而不是中心。

这篇文章讨论了一个类似的问题,但在 WPF 方面。问题在于 a) 由于一些对象不存在,因此无法为 Metro 应用程序编译;b) 逻辑滚动的实现似乎依赖于等宽的项目。

这个问题的最佳解决方案是什么?框架中是否有一些可用的东西可以使这变得简单?

4

1 回答 1

1

ScrollIntoView 有效,但您需要这样称呼它:

await Dispatcher.RunAsync(CoreDispatcherPriority.Low,
                        () => { this.gridView.ScrollIntoView(yourItem); });
于 2012-09-05T10:11:00.563 回答