5

WPFで非常に大量の画像(10,000以上)を管理するための最良の方法は何ですか?これは、次のような2Dタイルマップエディタ用です:http://www.mapeditor.org/

現在、すべてのタイルを画像として含むキャンバスと、選択可能なさまざまな画像を含むリストボックスがあります。各タイルは子としてキャンバスに追加され、後でアクセスできるようにリストに保存されます。タイルのSourceプロパティをリストボックスで選択したものに設定して、キャンバスにペイントします。これは約50x50のタイルマップでうまく機能しますが、それを超えると読み込みの遅延が発生し、一般的にアプリケーションが遅くなります。

これに関する提案はありますか?QTはwpfの代わりにもっと適しているでしょうか?

前もって感謝します

4

1 に答える 1

6

仮想化されたパネルシリーズの記事の実装をご覧ください。

仮想化されたパネルは、次の理由で効率的です。

  • 表示された要素(およびスムーズなスクロールを可能にするための境界線の周りのいくつかの余分な要素)のみがメモリにあります(そしてレンダリングされます)。

  • 要素は、繰り返し作成および破棄されるのではなく、再利用されます。古いセルは、新しいコンテンツ(新しいDataContextで提供される)で埋められ、新しい場所で使用されます。

また、これにWPFのDataGridを使用することもできます。これは、すぐに使用できる仮想化をサポートし、基本的には何をしようとしているのかを示しています。

WPFは、適切に実装されていれば、確かにこれを実行できます(JavaScriptで実行できる場合は、WPFでも実行できます)。

于 2011-10-05T18:10:59.497 に答える