かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

UWPのItemsStackPanelで画面外に生成される項目の要素数を制御する

UWPのListViewって仮想化されますよね? そのとき画面から見えてない領域にどれくらいの要素を生成されるのかという話しですが、これはCacheLengthプロパティで制御できます。

デフォルトは4で、このとき上に表示領域の4個ぶん、下に表示領域の4個ぶん、表示領域も含めて合計9個ぶんの項目が生成されることになります。

ItemsStackPanel.CacheLength property - Windows app development

これを小さくすることで、起動時間とかを短縮できるらしいです。大きくすると、スクロールのパフォーマンスが向上するらしいです。色々試して微調整が必要そうですね。因みに設定の仕方は以下のような感じです。

<ListView ...>
    ...
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsStackPanel CacheLength="2"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    ...
</ListView>