7

Canvas 内に生成された一連の四角形があり、XAML で ScrollView > Canvas > VirtualizingStackPanel > Rectangles の順序でネストされています。

仮想化がサポートされているシナリオについて Microsoft に関する情報はほとんどないようです。エラーがスローされない場合は、単に標準の StackPanel のように扱われます。

キャンバス全体で合計約 800 個の長方形のうち、一度に約 60 個の長方形がビューに画面上に表示されることを考えると、約 5 分の読み込み時間は容認できないほど遅くなります。

既に ScrollView を削除して効果がないように (スクロール バーを削除する以外はパフォーマンスが向上しませんでした)、他のネスト要素の一部を削除しようとしましたが、最終的な効果は何も表示されていないか、表示されていても表示されているようです。スロー。

私がこれまでに見つけた最良の解決策は、フリーウェア コード VirtualizedCanvas のサンプルですが、非常に限定されており、内部にネストされたものはサポートされていません。実際、入力は UI 要素のコレクションのみです。

このソリューションは基本的にデータ バインディングを無視し、完成した Canvas をそれに戻す必要があります。これにより、すべての既存のコードとコンバーターがまったく役に立たなくなり、実装するには大幅なやり直しが必要になります。

Virtualize the Canvas を単純にクリップして、60 個の画面アイテムのみを描画する方法はありますか?

4

0 に答える 0