【问题标题】:Scroll item to center with VirtualizingStackPanel in Windows 8 Metro在 Windows 8 Metro 中使用 VirtualizingStackPanel 将项目滚动到中心
【发布时间】:2012-06-05 17:57:50
【问题描述】:

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

This post 讨论了类似的问题,但在 WPF 方面。问题是 a) 由于某些对象不存在,因此无法为 Metro 应用程序编译;b) 逻辑滚动的实现似乎取决于等宽的项目。

这个问题的最佳解决方案是什么?框架中有什么东西可以让这变得简单吗?

【问题讨论】:

    标签: c# microsoft-metro winrt-xaml


    【解决方案1】:

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

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

    【讨论】:

    • 如果gridview被分组并且在语义缩放内部,我们可以使用上面的代码sn-p,因为在我的情况下它不起作用。
    猜你喜欢
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多