私のアプリケーションは、そのタイプに基づいて約5つの異なるDataTemplateをListBoxItemのセットに適用しています。これらのアイテムは、特定のx、yポイントでキャンバスに配置されます。私はListBoxで仮想化を実装していて、レンダリングスレッドのプロセスを完了するのにかかる時間は改善されていないようです。ユーザーがUIを完全にロードして使用できるようにするには、まだ8〜12秒かかります。私は仮想化がこの問題を解決するのに役立つだろうと思ったが、周りを見回しただけでプロセスが助けになるように見えるスクロール大量のデータ。私はこの前提を訂正し、他の誰かがレンダリングスレッドを改善するためのヒントを持っていますか?これが唯一の問題で、私のプロジェクトが完成しました。ありがとうStackOverflow!仮想化後にレンダリングスレッドがまだ遅い
答えて
はい、ListBox仮想化はスクロール用です。 ListBox内に多数のアイテムがある場合、仮想化を有効にすると表示アイテム(スクロール用のいくつかの余分なアイテム)のみがレンダリングされ、ListBoxをスクロールすると、新しいアイテムがレンダリングされる代わりにレンダリングされたアイテムに置き換えられます。
あなたには、いくつかのコードを投稿した場合、おそらく我々はいくつかのパフォーマンスを支援でき仮想化は、あなたが目に見える持っている唯一の項目が作成されることを意味
私は会議の後にいくつかの一般的なコードを投稿します。私はコードを投稿するための厳しい方針の下にあります。 – jes9582
を微調整し、動的に/あなたがスクロールするよう作成された新しいアイテムを破壊しました。もう1つの方法は、すべての項目に対してすべてのUIコントロールを一度に作成することです。
これは、アプリの残りの部分で大きな問題があるようです。バックグラウンドスレッドですべての読み込み操作を実行しますか? UIコントロールツリーは本当に複雑ですか?あなたは100または1,000のアイテムを表示していますか?
また、WPFのパフォーマンスに多くの問題がありました。もちろん、あなたのアプリケーションをプロファイルするのが最善の方法です。 ANTS Performanceプロファイラを使用していますが、.NETプロファイラはこれを行います。私たちはXAMLリソースの検索のために、大きなパフォーマンスを達成しました。それは私があなたに与えることができることです: XAMLのすべてのリソースを最小限に抑えてみてください。しかし、それだけでなく、あなたが持っているXAMLファイルの量を最小限に抑えるようにしてください。あなたが試みることができる1つのことは、DataTemplateの複雑な部分の読み込みを尊重することです。ブラウザーでJPEGを読み込むと何が起こるかと同じように、最初に、JPEGの読み込みが終了した後に細かくなるピクセル化されたイメージが表示されます。これを達成するには、最初はより簡単なDataTemplateを使用し、次に表示されている場合は、複雑なテンプレートをオンデマンドでロードします。 しかし、あなたの特定の問題の詳細がなければ、私たちは推測することしかできません。 Thisは、似たような主題についての私の古い質問です。多分これも助けになります。
私はdowhileforと同様の経験を持っていました。 SP1が助けになり、再起動したようだ – Paparazzi
- 1. AutoScrollのパフォーマンス(遅い)で仮想化されたListView
- 2. 仮想プロパティと遅延ロード
- 3. WPF:TreeView仮想化が機能しない
- 4. Winrt GridView仮想化
- 5. WPFデータ仮想化
- 6. Uniformgridの仮想化
- 7. WPFカスタムレイアウト/仮想化
- 8. WPFツリービュー仮想化
- 9. アンインストール後に仮想フォルダが残る
- 10. MVC3仮想ディレクトリビューのフォルダが非常に遅い
- 11. WPFツールチップの仮想化
- 12. WPFキャンバスの仮想化
- 13. 仮想マシンを自動化
- 14. WPF AutoCompleteBoxデータ仮想化
- 15. Silverlight 3コンボボックスUi仮想化
- 16. WPFデータ仮想化ListView
- 17. WPFデータ仮想化とデータグリッド
- 18. telerik radTreeListView UI仮想化
- 19. レンダリングスレッドがブロックされているWindows Phone(Mango)レンダリングスレッド
- 20. テーブルを使ってオウレリア・仮想仮想化を作成する
- 21. アイテムをトリミングしない仮想化パネル
- 22. treelistviewを仮想化しますか?
- 23. 純粋仮想と仮想の違い
- 24. AMD仮想化を有効にする
- 25. C++:仮想化によるメモリオーバーヘッド?
- 26. 仮想デバイスが
- 27. 仮想レジストリ/仮想ファイルシステムプロジェクトを探しています
- 28. 仮想関数が非常に遅いのはなぜですか? C++
- 29. リストボックスのデータ仮想化が有効になっていません
- 30. リサイクルモードでListView仮想化の値が繰り返されます
XAMLを表示できますか? – Bas
私はコードを投稿することはできません、ごめんなさい。私はそれを十分に一般化してここに置くことができるかどうかを見ていきます。これは非常に大きなコードセットですが、私はそれがまったく役に立たないことを知っています。 – jes9582
VSから実行している場合にのみ問題が発生します。 .exeを直接実行すると問題は解決しますか?表示されないバインディングエラーが発生することがあります。 presentationtrace = highに設定して一度実行し、エラーが発生したかどうかを確認してください。 – Paparazzi