Bagikan melalui


Mengoptimalkan Performa: Rekomendasi lainnya

Topik ini memberikan rekomendasi performa selain yang dibahas oleh topik di bagian Mengoptimalkan Performa Aplikasi WPF.

Topik ini berisi bagian berikut:

Opasitas pada Brush Versus Opacity pada Elemen

Saat Anda menggunakan Brush untuk mengatur Fill atau Stroke elemen, lebih baik mengatur Brush.Opacity nilai daripada mengatur properti elemen Opacity . Memodifikasi properti elemen Opacity dapat menyebabkan WPF membuat permukaan sementara.

Objek ini NavigationWindow berasal dari Window dan memperluasnya dengan dukungan navigasi konten, terutama dengan menggabungkan NavigationService dan jurnal. Anda dapat memperbarui area NavigationWindow klien dengan menentukan pengidentifikasi sumber daya seragam (URI) atau objek. Sampel berikut menunjukkan kedua metode:

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

Setiap NavigationWindow objek memiliki jurnal yang merekam riwayat navigasi pengguna di jendela tersebut. Salah satu tujuan jurnal adalah untuk memungkinkan pengguna menelusuri kembali langkah-langkah mereka.

Saat Anda menavigasi menggunakan pengidentifikasi sumber daya seragam (URI), jurnal hanya menyimpan referensi pengidentifikasi sumber daya seragam (URI). Ini berarti bahwa setiap kali Anda mengunjungi kembali halaman, halaman direkonstruksi secara dinamis, yang mungkin memakan waktu tergantung pada kompleksitas halaman. Dalam hal ini, biaya penyimpanan jurnal rendah, tetapi waktu untuk menyusun ulang halaman berpotensi tinggi.

Saat Anda menavigasi menggunakan objek, jurnal menyimpan seluruh pohon visual objek. Ini berarti bahwa setiap kali Anda mengunjungi kembali halaman, halaman akan segera dirender tanpa harus direkonstruksi. Dalam hal ini, biaya penyimpanan jurnal tinggi, tetapi waktu untuk menyusun ulang halaman rendah.

Ketika Anda menggunakan objek, NavigationWindow Anda perlu mengingat bagaimana dukungan penjurrangan berdampak pada performa aplikasi Anda. Untuk informasi selengkapnya, lihat Gambaran Umum Navigasi.

Hit Pengujian pada Permukaan 3D Besar

Pengujian hit pada permukaan 3D besar adalah operasi intensif performa yang sangat dalam hal konsumsi CPU. Ini terutama berlaku ketika permukaan 3D beranimasi. Jika Anda tidak memerlukan pengujian hit pada permukaan ini, nonaktifkan pengujian hit. Objek yang berasal dari UIElement dapat menonaktifkan pengujian hit dengan mengatur IsHitTestVisible properti ke false.

Peristiwa CompositionTarget.Rendering

Peristiwa ini CompositionTarget.Rendering menyebabkan WPF terus menganimasikan. Jika Anda menggunakan peristiwa ini, lepaskan di setiap kesempatan.

Hindari Menggunakan ScrollBarVisibility=Auto

Jika memungkinkan, hindari menggunakan ScrollBarVisibility.Auto nilai untuk HorizontalScrollBarVisibility properti dan VerticalScrollBarVisibility . Properti ini didefinisikan untuk RichTextBoxobjek , ScrollViewer, dan TextBox , dan sebagai properti terlampir untuk ListBox objek . Sebagai gantinya, atur ScrollBarVisibility ke Disabled, Hidden, atau Visible.

Nilai Auto ini ditujukan untuk kasus ketika ruang terbatas dan bilah gulir hanya boleh ditampilkan jika perlu. Misalnya, mungkin berguna untuk menggunakan nilai ini ScrollBarVisibility dengan ListBox 30 item dibandingkan TextBox dengan ratusan baris teks.

Mengonfigurasi Layanan Singgahan Font untuk Mengurangi Waktu Mulai

Layanan WPF Font Cache berbagi data font antara aplikasi WPF. Aplikasi WPF pertama yang Anda jalankan memulai layanan ini jika layanan belum berjalan. Jika Anda menggunakan Windows Vista, Anda dapat mengatur layanan "Windows Presentation Foundation (WPF) Font Cache 3.0.0.0" dari "Manual" (default) ke "Otomatis (Mulai Tertunda)" untuk mengurangi waktu mulai awal aplikasi WPF.

Baca juga