Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo argomento fornisce raccomandazioni sulle prestazioni oltre a quelle descritte negli argomenti della sezione Ottimizzazione delle prestazioni delle applicazioni WPF.
Questo argomento contiene le sezioni seguenti:
Opacità nei pennelli e opacità sugli elementi
Quando si usa un Brush per impostare il Fill o Stroke di un elemento, è preferibile impostare il valore Brush.Opacity anziché l'impostazione della proprietà Opacity dell'elemento. La modifica della proprietà Opacity di un elemento può causare la creazione di una superficie temporanea da parte di WPF.
Navigazione all'oggetto
L'oggetto NavigationWindow deriva da Window e lo estende con il supporto alla navigazione del contenuto, principalmente aggregando NavigationService e il giornale. È possibile aggiornare l'area client di NavigationWindow specificando un URI (Uniform Resource Identifier) o un oggetto . L'esempio seguente illustra entrambi i metodi:
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
Ogni oggetto NavigationWindow dispone di un journal che registra la cronologia di navigazione dell'utente in tale finestra. Uno degli scopi del journal è consentire agli utenti di ripercorrere i loro passaggi.
Quando si naviga utilizzando un identificatore di risorsa uniforme (URI), il diario archivia solo il riferimento all'URI. Ciò significa che ogni volta che si rivisita la pagina, viene ricostruita dinamicamente, che può richiedere molto tempo a seconda della complessità della pagina. In questo caso, il costo di archiviazione del journal è basso, ma il tempo per ricostituire la pagina è potenzialmente elevato.
Quando navighi usando un oggetto, il journal archivia l'intera struttura ad albero visiva dell'oggetto. Ciò significa che ogni volta che si rivisita la pagina, si viene subito visualizzata senza dover essere ricostruita. In questo caso, il costo di archiviazione del journal è elevato, ma il tempo necessario per ricostituire la pagina è basso.
Quando si utilizza l'oggetto NavigationWindow, è necessario tenere presente come il supporto di journaling influisca sulle prestazioni dell'applicazione. Per ulteriori informazioni, vedere la panoramica sulla navigazione .
Hit Testing su superfici 3D di grandi dimensioni
Il test di collisione su superfici 3D di grandi dimensioni è un'operazione che richiede molte risorse del processore. Questo vale soprattutto quando la superficie 3D è animata. Se non è necessario eseguire hit testing su queste superfici, disabilitare l'hit testing. Gli oggetti derivati da UIElement possono disabilitare l'hit testing impostando la proprietà IsHitTestVisible su false
.
Evento CompositionTarget.Rendering
L'evento CompositionTarget.Rendering determina l'animazione continua di WPF. Se utilizzi questo evento, scollegalo ad ogni opportunità.
Evitare di usare ScrollBarVisibility=Auto
Quando possibile, evitare di usare il valore di ScrollBarVisibility.Auto per le proprietà HorizontalScrollBarVisibility
e VerticalScrollBarVisibility
. Queste proprietà vengono definite per gli oggetti RichTextBox, ScrollViewere TextBox e come proprietà associata per l'oggetto ListBox. Impostare invece ScrollBarVisibility su Disabled, Hiddeno Visible.
Il valore Auto è destinato ai casi in cui lo spazio è limitato e le barre di scorrimento devono essere visualizzate solo quando necessario. Ad esempio, può essere utile usare questo valore ScrollBarVisibility con un ListBox di 30 elementi anziché un TextBox con centinaia di righe di testo.
Configurare il servizio di cache dei caratteri per ridurre il tempo di avvio
Il servizio Cache dei tipi di carattere WPF condivide i dati dei tipi di carattere tra le applicazioni WPF. La prima applicazione WPF eseguita avvia questo servizio se il servizio non è già in esecuzione. Se si usa Windows Vista, è possibile impostare il servizio "Windows Presentation Foundation (WPF) Font Cache 3.0.0.0" da "Manuale" (impostazione predefinita) su "Automatic (Delayed Start)" per ridurre l'ora iniziale di avvio delle applicazioni WPF.
Vedere anche
.NET Desktop feedback