Как добиться максимальной производительности в WPF, когда визуализируется множество элементов управления пользовательским интерфейсом? - PullRequest
3 голосов
/ 12 декабря 2010

Я занимаюсь разработкой приложения WPF, в котором одновременно отображается много элементов управления пользовательского интерфейса, и это замедляет анимацию и т. Д. Есть ли способ предотвратить это?

Ответы [ 5 ]

7 голосов
/ 12 декабря 2010

Не зная больше о том, как вы загружаете элементы управления, трудно сказать. Однако вот мои советы и подсказки:

  • Не используйте ObservableCollection, если вы не изменяете содержимое коллекции на лету. Если вы можете получить список, используйте это. Мы использовали ObservableCollection как кучу новичков повсюду; это значительно ускорило наше приложение.

  • Не вызывайте PropertyChanged, если свойство действительно не изменилось - сравните с предыдущим свойством, если вам нужно.

  • Рассмотрим удобство использования приложения. Если показ того, что множество элементов управления одновременно сбивает с толку ПК, это, вероятно, также сбивает с толку и пользователя. Можете ли вы спрятать некоторые из них в расширитель? Размещать их на разных вкладках? Есть ли способ показать меньше информации, которая может сделать приложение более интуитивно понятным?

  • Введите код / ​​добавьте временную запись в журнал и убедитесь, что это действительно рендеринг, вызывающий проблему. Затем рассмотрите расчеты и отношения, происходящие за сценой (см. Первые два совета о том, что вы можете изменить).

1 голос
/ 14 февраля 2011

Посмотрите на эту статью о настройке производительности WPF Пола Харрингтона из команды разработчиков VS2010. В нем есть несколько полезных советов по производительности WPF и перечислены инструменты, которые использовали эти ребята.

1 голос
/ 12 декабря 2010

MSDN имеет несколько рекомендаций: msdn wpf perrformance

А также мой любимый новичок Блог: Wpf Tutorial

0 голосов
/ 13 декабря 2010
0 голосов
/ 12 декабря 2010

Добавьте меньше элементов управления, используйте меньше анимации или получите лучшую видеокарту.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...