2009-05-11 3 views
4

müssen ich höre viel über die Wickelplatte langsamer, die Dinge zu laden und daher brauchen wir eine virtualisieren Panel.In welcher Weise ein WPF-Verpackungs-Panel ist langsamer, dass wir virtuelle Wrap Panel

Kann jemand geben Sie mir eine kleine Wrap Panel Probe, wo es nachgewiesen werden kann, es langsamer ist usw. zu laden, die sie bitte einen virtualisieren Panel benötigt.

stellte ich einen Wrap-Panel als Panel-Steuerung für eine Listbox, und hinzugefügt 10000 String-Objekte, um es, und es war kein Problem. Ich bin sicher, meine Probe war dumm, vielleicht muss ich ein Business-Objekt schreiben und eine größere Datenvorlage erstellen, um dieses Problem in Aktion zu sehen.

zeigen Sie mir bitte eine Probe, die Wrap-Panel beweist ohne Virtualisierung langsamer ist.

Danke.

Antwort

3

Ich denke, das Performance-Problem in erster Linie von der Anzahl der visuellen Objekte in Ihrem Baum hängt.

Der Standard ListBoxItem Vorlage besteht aus einer geringen Anzahl von Elementen (eine Grenze und ein Textblock glaube ich). Wenn Sie eine Vorlage haben, die eine komplexe Visualisierung von beispielsweise 100 visuellen Elementen pro Objekt erzeugt, erhalten Sie eine ziemlich große Menge an Visuals, abhängig von Ihrer Artikelanzahl.

Dies ist der Grund, warum das normale Panel beim Laden langsamer ist, da es beim Start alle Objekte erstellen muss, während die virtualisierende Version nur Visuals für die sichtbaren Objekte erstellt und nicht mehr angezeigte Visuals disponiert.

Darüber hinaus hat dies auch Auswirkungen auf die Speichernutzung

0

Vor kurzem habe ich diese Funktionalität benötigt, wenn ein Einfügesymbol Form zu machen. Verwenden einer Listbox mit normalem Wrap-Panel als Element-Panel - Ladezeit würde bis zu 5 Sekunden dauern.

Verwandte Themen