Delen via


Prestaties optimaliseren: andere aanbevelingen

Dit onderwerp bevat aanbevelingen voor prestaties naast de aanbevelingen die worden behandeld in de onderwerpen in de sectie WpF-toepassingsprestaties optimaliseren.

Dit onderwerp bevat de volgende secties:

Dekking op kwasten versus ondoorzichtigheid op elementen

Wanneer u een Brush gebruikt om de Fill of Stroke van een element in te stellen, is het beter om de Brush.Opacity waarde in te stellen in plaats van de eigenschap Opacity van het element in te stellen. Als u de eigenschap Opacity van een element wijzigt, kan WPF een tijdelijk oppervlak maken.

Het NavigationWindow-object is afgeleid van Window en wordt uitgebreid met ondersteuning voor inhoudsnavigatie, voornamelijk door NavigationService en het logboek samen te aggregatie. U kunt het clientgebied van NavigationWindow bijwerken door een URI (Uniform Resource Identifier) of een object op te geven. In het volgende voorbeeld ziet u beide methoden:

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

Elk NavigationWindow object heeft een logboek waarin de navigatiegeschiedenis van de gebruiker in dat venster wordt vastgelegd. Een van de doeleinden van het logboek is om gebruikers toe te staan hun stappen opnieuw te volgen.

Wanneer u navigeert met behulp van een URI (Uniform Resource Identifier), slaat het logboek alleen de URI-verwijzing (Uniform Resource Identifier) op. Dit betekent dat telkens wanneer u de pagina opnieuw opent, deze dynamisch wordt gereconstrueerd, wat mogelijk tijdrovend is, afhankelijk van de complexiteit van de pagina. In dit geval zijn de kosten voor logboekopslag laag, maar de tijd om de pagina te reconstitueren is mogelijk hoog.

Wanneer u met behulp van een object navigeert, slaat het logboek de hele visuele structuur van het object op. Dit betekent dat telkens wanneer u de pagina opnieuw opent, deze onmiddellijk wordt weergegeven zonder dat deze opnieuw hoeft te worden gereconstrueerd. In dit geval zijn de kosten voor logboekopslag hoog, maar de tijd om de pagina te reconstitueren is laag.

Wanneer u het NavigationWindow-object gebruikt, moet u in gedachten houden hoe de ondersteuning voor logboeken van invloed is op de prestaties van uw toepassing. Zie Navigatieoverzichtvoor meer informatie.

Druk op testen op grote 3D-oppervlakken

Raaktest op grote 3D-oppervlakken is een zeer prestatie-intensieve bewerking wat betreft CPU-verbruik. Dit geldt vooral wanneer het 3D-oppervlak animatie geeft. Als u geen hittests op deze oppervlakken nodig hebt, schakelt u hittests uit. Objecten die zijn afgeleid van UIElement kunnen het testen van treffers uitschakelen door de eigenschap IsHitTestVisible in te stellen op false.

Rendering-gebeurtenis van CompositionTarget

De gebeurtenis CompositionTarget.Rendering zorgt ervoor dat WPF continu animaties veroorzaakt. Als u dit event gebruikt, ontkoppel het wanneer dat mogelijk is.

Vermijd het gebruik van ScrollBarVisibility=Auto

Vermijd waar mogelijk het gebruik van de ScrollBarVisibility.Auto waarde voor de eigenschappen HorizontalScrollBarVisibility en VerticalScrollBarVisibility. Deze eigenschappen worden gedefinieerd voor RichTextBox, ScrollVieweren TextBox objecten, en als een gekoppelde eigenschap voor het ListBox-object. Stel in plaats daarvan ScrollBarVisibility in op Disabled, Hiddenof Visible.

De Auto-waarde is bedoeld voor gevallen waarin de ruimte beperkt is en schuifbalken alleen moeten worden weergegeven wanneer dat nodig is. Het kan bijvoorbeeld handig zijn om deze ScrollBarVisibility waarde te gebruiken met een ListBox van 30 items in plaats van een TextBox met honderd regels tekst.

Lettertypecacheservice configureren om de opstarttijd te verminderen

De WPF Font Cache-service deelt lettertypegegevens tussen WPF-toepassingen. De eerste WPF-toepassing die u uitvoert, start deze service als de service nog niet wordt uitgevoerd. Als u Windows Vista gebruikt, kunt u de service "Windows Presentation Foundation (WPF) Font Cache 3.0.0.0" instellen van "Manual" (de standaardinstelling) op "Automatic (Delayed Start)" om de initiƫle opstarttijd van WPF-toepassingen te verminderen.

Zie ook