問題タブ [ui-virtualization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - WPFでのUI仮想化に関するリソースとガイド
UI仮想化は、メモリフットプリントを削減するために、子要素をオンデマンドで(可視性に基づいて)ロードおよび破棄するWPFUIコントロールを説明する厄介な用語です。ListBoxとListViewは、デフォルトでVirtualizingStackPanelと呼ばれるクラスを使用して、パフォーマンスを向上させます。
このコントロールは非常に便利で、クワッドツリーで子を管理するスクロール可能なCanvasオブジェクトを生成する仮想化されたキャンバスであることがわかりました。それはいくつかの素晴らしい結果を生み出し、あなたのニーズに合わせて簡単に調整することができます。
この問題に対処する他のガイドまたはサンプルwpfコントロールはありますか?たぶん、他の言語やツールキットでのGUIオブジェクトの動的メモリ割り当てを扱う一般的なものですか?
wpf - WPF のパフォーマンス: キャンバスに何千ものパス / シェイプを表示する
私は現在、キャンバス上にパス、楕円などの WPF 形状を描画する視覚化ツールを開発しています。可視性に応じてその場で形状が破棄および作成される仮想化アプローチを既に実装しています。ただし、楕円が 600 個しか表示されていない場合でも、アプリケーションは苦労しているようです。
物事をスピードアップするためのオプションは何ですか? グループ化されたシェイプ (一度に 500 としましょう) を透明なビットマップとしてレンダリングし、これらをキャンバスにのみペイントすることを考えています。しかし、それが良い考えかどうかはわかりません...私が収集したものから、変換が適用された場合、これにはある種のハックが必要です:
大きな WritableBitmap を使用するのはどうですか? それは別のアプローチでしょうか?
c# - SilverlightMediaElementとUI仮想化
パネルに多くのコントロールがあり、それぞれに独自のMediaElement再生ビデオがあるアプリケーションがあります。小さいビューポートでこれらのコントロールの多くをスクロールするときのパフォーマンスを向上させるために、Silverlight3の新しいUI仮想化機能を調べています。
私の経験から、MediaElementコントロールが削除されてからビジュアルツリーに再度追加されるたびに、メディアを再バッファリングする必要があることを理解しています。MediaElementコントロールで満たされたあらゆる種類のカスタムパネルにUI仮想化を実装しようとすると、画面外の要素の再生が停止し、画面にスクロールされるとすぐに再生する前に再バッファリングされると思います。誰かがこの状況で何か経験がありますか?
この場合、進行中の再生に影響を与えることなく、MediaElementsを含むコントロールを使用してUI仮想化を実装するための回避策または可能な方法はありますか?
android - AndroidListViewデータ仮想化-10,000を超えるアイテムの遅延読み込み
SqliteデータベースからAndroidListViewを遅延読み込み(約10,000アイテム)する例はありますか?
.net - WPF で利用できる (良い/無料の) VirtualizingWrapPanel はありますか?
このCodePlexプロジェクトとこの商用プロジェクトの2つの代替案を見つけましたが、前者は私のテストでは非常に非効率的で、後者は費用がかかります。この実装も見つけましたが、「TilePanel」ほどの WrapPanel ではなく、自動的にサイズ変更される項目をサポートしていません (高速に見えますが)。
また、自分で作成する方法に関するいくつかの「ヒント」をここで見つけましたが、開発者が会社の時間に開発したため、完全なソースを投稿できませんでした。
まともな VirtualizingWrapPanel を実装して公開するために時間をかけた人はいますか? それとも、1 日かけて自分で作成する必要がありますか?
wpf - ScrollViewer.CanContentScrollをfalseに設定する理由仮想化を無効にする
ほとんどのWPF開発者が知っているように、に設定ScrollViewer.CanContentScroll
するfalse
と仮想化が無効になります。ScrollViewer.CanContentScroll
ただし、に設定して仮想化を有効にしようとしているため、どのように機能するかを知りたいfalse
です。
.net - WPFToolkitアコーディオンでのUI仮想化の有効化
TreeViewとして定義されたアコーディオン内のアイテムでWPFToolkitアコーディオンコントロールを使用しています。
コンテキストとして、XAMLの関連部分は次のとおりです。
もともと私はこれをTreeView(WPFToolkit Accordianなし)だけで実装し、40,000個のアイテムを1秒以内にロードしました。
ルートレベルでアコーディオンを使用して構造を実装すると、エキスパンダーをクリックしたときの読み込み時間が7秒以上になりました。これは長すぎです。
アプリケーションのプロファイルを作成したところ、最初のレベルの500項目が再帰的に測定されており、ロード時間が長くなっていることがわかりました。アコーディオンコントロールがUI仮想化を使用していないようです。アコーディオンにUI仮想化を使用させる方法はありますか?そうでない場合は、アコーディオンのパフォーマンスを向上させて、第1レベルのアイテムをより迅速にロードする方法はありますか?
wpf - WPF:TreeView仮想化が機能しない
TreeViewが次のように設定されている場合、TreeViewの仮想化を停止するにはどうすればよいですか?
仮想化されていないものがあります。ノードを展開すると(そしてスヌープを使用してチェックすると)、すべてのTreeViewItemが作成されます。TreeViewがコンテンツを仮想化するのを妨げるコンテナの組み合わせがあるかどうか疑問に思っています。(たとえば、StackPanelでホストするなど)
.net - データバインドされたListBoxの仮想アイテムを取得するには?
にバインドされた車のリストがある場合ListBox
。最初のアイテムが最初にフォーカスされるように実装したいと思います。さらに、表示された ListBox アイテム間の完全なキーボード ナビゲーションを実装したいので、仮想的に作成されたアイテム コントロールにアクセスする必要があります。
問題は、 ではなく、それ自体をitemStack.Items[i]
返すことです。バーチャルに作成されたアイテムを取得するにはどうすればよいですか?Car
CarEditControl
wpf - VirtualizingStackPanelがComboBoxで機能しない
私はWPFにまったく慣れていません。VirtualizingStackPanelが以下で機能しない理由がわかりません。私はすでにScrollViewerを試しましたが、うまくいきません。VirtualizingStackPanelをどこにでも配置しようとしましたが、まったく影響がないようです。3000個のアイテムが入力され、各アイテムに16x16の画像がある場合、コンボボックスが表示されるまでに約30秒かかります。だからどんな助けもいただければ幸いです。
更新:データテンプレートが追加されました