Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе приведены рекомендации по производительности в дополнение к тем, которые рассматриваются в разделе "Оптимизация производительности приложений WPF ".
Этот раздел состоит из следующих подразделов.
Если вы используете Brush для задания Fill или Stroke элемента, лучше установить значение Brush.Opacity, чем задавать свойство Opacity элемента. Изменение свойства элемента Opacity может привести к созданию временной поверхности WPF.
Объект NavigationWindow является производным от Window и расширяет его, добавляя поддержку навигации по содержимому, главным образом за счет объединения NavigationService и журнала. Вы можете обновить клиентскую область NavigationWindow , указав универсальный идентификатор ресурса (URI) или объект. В следующем примере показаны оба метода:
private void buttonGoToUri(object sender, RoutedEventArgs args)
{
navWindow.Source = new Uri("NewPage.xaml", UriKind.RelativeOrAbsolute);
}
private void buttonGoNewObject(object sender, RoutedEventArgs args)
{
NewPage nextPage = new NewPage();
nextPage.InitializeComponent();
navWindow.Content = nextPage;
}
Private Sub buttonGoToUri(ByVal sender As Object, ByVal args As RoutedEventArgs)
navWindow.Source = New Uri("NewPage.xaml", UriKind.RelativeOrAbsolute)
End Sub
Private Sub buttonGoNewObject(ByVal sender As Object, ByVal args As RoutedEventArgs)
Dim nextPage As New NewPage()
nextPage.InitializeComponent()
navWindow.Content = nextPage
End Sub
Каждый NavigationWindow объект содержит журнал, который записывает журнал навигации пользователя в этом окне. Одной из целей журнала является позволить пользователям вспомнить свои действия.
При переходе по универсальному идентификатору ресурса (URI) журнал хранит только ссылку на универсальный идентификатор ресурса (URI). Это означает, что при каждом повторном просмотре страницы она динамически восстанавливается, что может занять много времени в зависимости от сложности страницы. В этом случае стоимость хранения журнала низка, но время восстановления страницы потенциально высоко.
При переходе по объекту журнал сохраняет все визуальное дерево объекта. Это означает, что при каждом повторном посещении страницы она отображается мгновенно, без необходимости реконструирования. В этом случае стоимость хранения журнала высока, но время восстановления страницы низко.
При использовании NavigationWindow объекта необходимо учитывать, как поддержка журналов влияет на производительность приложения. Для получения дополнительных сведений см. обзор навигации .
Проверка пересечений на больших трехмерных поверхностях является очень ресурсоемкой операцией с точки зрения потребления ЦП. Это особенно верно, когда трехмерная поверхность анимирует. Если вам не нужна проверка пересечения на этих поверхностях, отключите ее. Объекты, производные от UIElement, могут отключить тест попаданий, установив свойству IsHitTestVisible значение false
.
Событие CompositionTarget.Rendering приводит к непрерывной анимации WPF. Если вы используете это событие, отключите его при каждой возможности.
По возможности избегайте использования значения ScrollBarVisibility.Auto для свойств HorizontalScrollBarVisibility
и VerticalScrollBarVisibility
. Эти свойства определяются для RichTextBoxобъектов и ScrollViewerTextBox объектов, а также как присоединенное свойство для ListBox объекта. Вместо этого установите ScrollBarVisibility на Disabled, Hidden или Visible.
Значение Auto предназначено для случаев, когда пространство ограничено и полосы прокрутки должны отображаться только при необходимости. Например, полезно использовать ScrollBarVisibility значение с ListBox 30 элементами вместо TextBox с сотнями строк текста.
Служба кэша шрифтов WPF предоставляет общий доступ к данным шрифта между приложениями WPF. Первое приложение WPF запускает эту службу, если служба еще не запущена. Если вы используете Windows Vista, вы можете установить режим службы "Кэш шрифтов Windows Presentation Foundation (WPF) 3.0.0.0" с "Ручной" (по умолчанию) на значение "Автоматически (отложенный запуск)", чтобы уменьшить начальное время запуска приложений WPF.
Отзыв о .NET Desktop feedback
.NET Desktop feedback — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: