かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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>