キャンバス内で生成された一連の矩形があり、XAMLのScrollView> Canvas> VirtualizingStackPanel> Rectangleの順にネストされます。WPFキャンバスの仮想化
仮想化がサポートされているシナリオに関するMicrosoftの情報はほとんどなく、エラーがスローされない場合は単に標準のStackPanelのように扱われます。
キャンバス全体で合計約800個のうち約60個の四角形が一度に画面上に表示され、約5分の読み込み時間が許容できないほど遅くなることを考えると、
ScrollViewを削除しても、パフォーマンスが改善されなかったスクロールバーを削除する以外に、既に他の入れ子要素を削除しようとすると、ネットエフェクトは何も表示されないか、または表示されているがまだ遅い。
ベストプラクティス私はこれまで、フリーウェアコードVirtualizedCanvasのサンプルを見つけましたが、非常に限られていて、内部にネストされたものはサポートしていません。
このソリューションは、基本的にデータバインディングを無視し、完成したCanvasを渡す必要があります。これにより、既存のコードとコンバータはすべて役に立たなくなり、実装に大きな変更になります。
キャンバスを仮想化して60個の画面アイテムのみを描画する方法はありますか?この例アウト