使用 GridView 和 ListView 控件改进应用的启动时间 (XAML)

要在 GridViewListView 控件中创建每个项目,Windows 运行时使用计算时间和内存。每个项目可以由多个元素组成,以显示其状态,包括用于选择、悬停和聚焦某个项目的元素。在 Windows 8 中,所有这些元素均会提前创建,即使只用到其中的一部分。这样会导致启动时间延长。在 Windows 8.1 中,通过引入 GridViewItemPresenterListViewItemPresenter 类以及 GoToElementStateCore 方法,改进了启动时间。

GridViewItemPresenterListViewItemPresenter

GridViewItemPresenter 类(用于 GridView 控件)和 ListViewItemPresenter 类(用于 ListView 控件)仅在需要时创建对象,并且对象在 Windows 8.1 中的表现比在 Windows 8 中更好。此外,在 Windows 8.1 中使用这些类自定义项目状态行为也比在 Windows 8 中更容易。

要证明这一点,这里提供了适用于 Windows 8.1 的一些 Extensible Application Markup Language (XAML) 标记,它可以将选定项目时默认出现的选中标记删除,并将所选项目的背景颜色更改为橙色。


<!-- ... -->
<GridView>
    <!-- ... -->
    <GridView.ItemContainerStyle>
        <Style TargetType="GridViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="GridViewItem">
                        <GridViewItemPresenter
                            SelectionCheckMarkVisualEnabled="False"
                            SelectedBackground="Orange"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </GridView.ItemContainerStyle>
</GridView>
<!-- ... -->


找到要使用的两行正确的 XAML 标记 SelectionCheckMarkVisualEnabled="False"SelectedBackground="Orange",需要从大约 25 个含有自描述属性名称的可用属性的列表中选择。

相较而言,在 Windows 8 中执行相似操作需要浏览超过 250 行生成的 XAML 标记(含有较少描述),然后要么立即修改目标标记,要么将目标标记复制到你自己的 XAML 标记代码中,并在其中执行进一步修改。这两个方法都要更费时并更容易出错。

GoToElementStateCore

如果你要创建自定义项目模板—例如,你要在 GridViewListView 控件中更改某个项目的默认可视行为(例如,将选定项目的选中标记更改为其他形状)—你可以使用 GoToElementStateCore 方法。此方法可用于将项目添加到可视元素的层次结构中,这些可视元素用于描述选择、悬停和聚焦等行为时项目的状态。GoToElementStateCore 方法支持这些类型的可视元素的每个状态的构建,而不是在控件启动时加载所有状态的 XAML。与创建自定义实施相比,使用此方法可导致更好的控件启动。

有关显示如何使用 GoToElementStateCore 方法的代码,请参阅 XAML ListViewGridView 基本示例

相关主题

有效地加载、存储和显示大型数据集
以增量方式更新 GridView 和 ListView 项目
最小化启动时间

 

 

显示:
© 2015 Microsoft