読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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>