在Windows 8 Metro中,使用VirtualizingStackPanel将项目滚动到中心

4
我正在开发一个Windows 8 Metro应用程序,其中包含一个具有不同宽度的几百个项的GridView。我使用VirtualizingStackPanel来帮助改善内存消耗。我需要将一个项目滚动到GridView的中心。使用GridView.ScrollIntoView或VirtualizingStackPanel.SetHorizontalOffset将会将该项目滚动到屏幕边缘而非中心。 这篇文章讨论了类似的问题,但是在WPF方面。问题在于a)这不适用于Metro应用程序,因为一些对象不存在;b)逻辑滚动的实现似乎依赖于项目具有相等的宽度。
那么,这个问题的最佳解决方案是什么?框架中是否有可用的东西可以使此过程简单化?
1个回答

1

ScrollIntoView 起作用了,但你需要这样调用它:

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

如果GridView被分组并且在语义缩放内部,我们能否使用上面的代码片段?因为在我的情况下它不起作用。 - Ashwin N Bhanushali

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接