Sdílet prostřednictvím


Optimalizace výkonu: Další doporučení

Toto téma poskytuje doporučení k výkonu kromě témat v části Optimalizace výkonu aplikací WPF.

Toto téma obsahuje následující části:

Neprůhlednost u štětců versus neprůhlednost prvků

Pokud používáte Brush k nastavení Fill nebo Stroke prvku, je lepší nastavit Brush.Opacity hodnotu namísto nastavení Opacity prvku. Úprava vlastnosti Opacity prvku může způsobit, že WPF vytvoří dočasný povrch.

Objekt NavigationWindow je odvozen od Window a rozšiřuje ho o podporu navigace v obsahu, především agregací NavigationService a deníku. Klientskou oblast NavigationWindow můžete aktualizovat zadáním identifikátoru URI (Uniform Resource Identifier) nebo objektu. Následující ukázka ukazuje obě metody:

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

Každý NavigationWindow objekt má deník, který zaznamenává historii navigace uživatele v daném okně. Jedním z účelů deníku je umožnit uživatelům znovu sledovat jejich kroky.

Při navigaci pomocí identifikátoru URI (Uniform Resource Identifier) ukládá deník pouze odkaz na identifikátor URI (Uniform Resource Identifier). To znamená, že při každém opětovném zobrazení stránky se dynamicky rekonstruuje, což může být časově náročné v závislosti na složitosti stránky. V tomto případě jsou náklady na úložiště deníku nízké, ale čas na rekonstituci stránky je potenciálně vysoký.

Při navigaci pomocí objektu, žurnál ukládá celý vizuální strom objektu. To znamená, že při každém opětovném zobrazení stránky se okamžitě zobrazí, aniž by bylo nutné rekonstruovat. V tomto případě jsou náklady na úložiště deníku vysoké, ale doba na rekonstituci stránky je nízká.

Při použití NavigationWindow objektu je potřeba mít na paměti, jak podpora deníku ovlivňuje výkon vaší aplikace. Další informace naleznete v tématu Přehled navigace.

Testování hitů na velkých 3D povrchech

Testování nárazů na velkých 3D plochách je velmi náročná operace na výkonu z hlediska spotřeby procesoru. To platí zejména v případě, že 3D povrch animuje. Pokud na těchto plochách nepotřebujete detekci kolizí, zakažte tuto funkci. Objekty odvozené z UIElement mohou zakázat testování zásahů nastavením vlastnosti IsHitTestVisible na false.

Událost CompositionTarget.Rendering

Událost CompositionTarget.Rendering způsobí, že WPF bude průběžně animovat. Pokud tuto událost použijete, odpojte ji při každé příležitosti.

Vyhněte se použití ScrollBarVisibility=Auto

Pokud je to možné, nepoužívejte hodnotu ScrollBarVisibility.Auto pro vlastnosti HorizontalScrollBarVisibility a VerticalScrollBarVisibility. Tyto vlastnosti jsou definovány pro RichTextBox, ScrollViewera TextBox objekty a jako připojenou vlastnost pro objekt ListBox. Místo toho nastavte ScrollBarVisibility na Disabled, Hiddennebo Visible.

Hodnota Auto je určena pro případy, kdy je mezera omezená a posuvníky by se měly zobrazit pouze v případě potřeby. Může být například užitečné použít tuto hodnotu ScrollBarVisibility s ListBox o 30 položkách namísto TextBox se stovkami řádků textu.

Konfigurace služby Font Cache Service pro zkrácení doby spuštění

Služba WPF Font Cache sdílí data písem mezi aplikacemi WPF. První aplikace WPF, kterou spustíte, spustí tuto službu, pokud tato služba ještě není spuštěná. Pokud používáte Systém Windows Vista, můžete nastavit službu "Windows Presentation Foundation (WPF) Font Cache 3.0.0.0" z "ručně" (výchozí) na "Automaticky (zpožděné spuštění)" snížit počáteční dobu spuštění aplikací WPF.

Viz také