私のアプリケーションでは、同じユーザーコントロールの束をScrollPanel
にロードしています。問題は、これは非常に遅いことです。多くのユーザーコントロールをロードするパフォーマンスの問題
プロファイラは、私のユーザコントロールのコンストラクタのデザイナーコードで内部的に呼び出されるメソッドApplication.LoadComponent()
がボトルネックであることを示しています。このメソッドのドキュメントには、このメソッドはXAMLというファイルをロードすると記載されています。
QAMLの代わりにBAMLを使用するにはどうすればよいですか。自分のユーザーコントロールのXAMLを新しいインスタンスを作成するときに何度も解析してはならないことをどのように達成できますか?ユーザーコントロールの読み込みを高速化する別の方法はありますか?
MSDNページ(http://msdn.microsoft.com/de-de/library/system.windows.application.loadcomponent.aspx)の状態に役立ちます明示的にLoadComponentがBAMLではなくXAMLを読み込む、それが問題です。私のUserControlは複数の他のコントロールのコンポジションなので、カスタムコントロールはここでは適切な選択ではありません。 – codymanix
UI仮想化を推奨するようにしたいと考えています。これは、画面上の項目のみを表示します。 BAMLを使用しても、パフォーマンスは向上しません。 BAMLはXAMLのコンパイル版です。 – kevindaub
「あなたはUserControlsをカスタムコントロールに書き直すことができますか?私は継承対構成の違いを理解していますが、なぜこのような劇的なパフォーマンスの違いがあるのか分かりません。 – Trinition