改善包含 GridView 與 ListView 控制項之應用程式的啟動時間 (XAML)

Applies to Windows and Windows Phone

為了在 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 標記程式碼再進一步修改。不管是哪一種方法都會耗費相當多的時間且容易出錯。

GoToElementStateCore

如果您要建立自訂項目範本 — 例如,您要變更 GridViewListView 控制項中的項目預設視覺行為 (像是將選取項目的核取記號變更為不同形狀)— 則可使用 GoToElementStateCore 方法。這個方法可用來將項目新增至視覺元素階層,而這些視覺元素可針對選取、暫留及焦點行為等動作描述項目狀態。GoToElementStateCore 方法可依狀態建構這些類型的視覺元素,而非在控制項啟動時為所有狀態載入 XAML。與建立自訂實作相比,使用這個方法更能適切啟動控制項。

如需如何使用 GoToElementStateCore 方法的程式碼,請參閱 XAML ListViewGridView 基本範例

相關主題

有效載入、儲存和顯示大型資料集
以遞增方式更新 GridView 與 ListView 項目
將啟動時間縮到最短

 

 

顯示:
© 2014 Microsoft