2010-12-12 4 views

Antwort

7

Ohne mehr über die spezifische Art zu wissen, wie Sie Steuerelemente laden, ist es schwer zu sagen. Aber hier ist meine Hinweise und Tipps:

  • Verwenden ObservableCollection nicht, es sei denn Sie tatsächlich den Inhalt der Sammlung im laufenden Betrieb zu ändern. Wenn Sie mit einer Liste durchkommen können, verwenden Sie diese. Wir haben ObservableCollection wie einen Haufen Neulinge überall benutzt. Dies hat unsere Anwendung massiv beschleunigt.

  • Rufen Sie PropertyChanged nur auf, wenn sich die Eigenschaft wirklich geändert hat - vergleichen Sie sie ggf. mit der vorherigen Eigenschaft.

  • Betrachten Sie die Verwendbarkeit der Anwendung. Wenn Sie feststellen, dass viele Steuerelemente gleichzeitig auf dem PC verwirrend sind, ist dies wahrscheinlich auch für den Benutzer verwirrend. Kannst du einige von ihnen in einem Expander verstecken? Legen Sie sie auf verschiedene Tabs? Gibt es eine Möglichkeit, weniger Informationen anzuzeigen, die die App intuitiver machen könnten?

  • Instrumentieren Sie den Code/fügen Sie einige zeitgesteuerte Protokollierung hinzu und überprüfen Sie, ob es wirklich das Rendering ist, das das Problem verursacht. Betrachten Sie dann die Berechnungen und Beziehungen, die hinter der Szene ablaufen (siehe die ersten beiden Hinweise für die Art von Sachen, die Sie ändern können).

+0

Ich würde sagen, dass Sie ObservableCollection nicht verwenden, wenn Sie es nicht an einige UI-Komponenten binden. http://StackOverflow.com/Questions/1007691/ObservableCollection-Databinding-Performance – akjoshi

+0

Es gibt auch Kontexte, in denen es besser ist, nur eine Liste zu verwenden, besonders wenn es sich um Daten handelt, die sich überhaupt nicht ändern. Der einzige Vorteil von ObservableCollection besteht darin, dass die Benutzeroberfläche erkennt, ob ein zusätzliches Element hinzugefügt wurde. – Lunivore

0

Fügen Sie weniger Steuerelemente hinzu, verwenden Sie weniger Animationen oder erhalten Sie eine bessere Grafikkarte. :)

+0

Ich habe bessere Grafikkarte, genug RAM, guter Prozessor. Ich möchte nur, gibt es einen Trick oder was auch immer zu machen wpf app reibungslos laufen. – Code0987

1

Schauen Sie sich das article on WPF Performance tuning von Paul Harrington von VS2010 Entwicklerteam. Es enthält eine Reihe nützlicher Tipps zur WPF-Leistung und listet die Tools auf, die diese Leute verwendet haben.

Verwandte Themen