Aracılığıyla paylaş


Başarım İyileştirme: Denetimler

Windows Presentation Foundation (WPF)çok kullanılan ortak kullanıcı arabirimi (UI) bileşenleri, çoğu Windows uygulamaları içeren. Bu konuda sizin UI performansını geliştirme teknikleri içerir.

Bu konu aşağıdaki bölümleri içerir.

  • Büyük veri kümelerini görüntüleme
  • Recycling container
  • Destek çift yönlü sanallaştırma
  • Şablonlar en iyi duruma getirme
  • Kaydırma ertelenmiş
  • O Implement performans özellikleri denetler
  • İlgili Konular

Büyük veri kümelerini görüntüleme

wpf denetimleri gibi ListView ve ComboBox maddelerin listeleri görüntülemek için kullanılırbir uygulama. Büyük bir listesini görüntülemek için ise, uygulamanın performansı etkilenebilir. Bu düzeni kapsayıcı listesi denetimle ilişkilendirilmiş her madde için standart Düzen sistem oluşturduğundan ve düzeni boyutunu ve konumunu hesaplar. Genellikle, aynı anda tüm öğeleri görüntülemek bulunmaz; Bunun yerine bir alt kümesini görüntülemek ve kullanıcı liste boyunca kayar. Bu durumda, kullanıcı Arabirimi kullanmak anlamlı sanallaştırma, madde kap oluşturma anlamına gelir ve bir madde Madde görünene kadar ertelenmiş için Düzen hesaplaması ilişkili.

UI sanallaştırma liste denetimlerinin önemli bir özelliğidir. UI sanallaştırma veri sanallaştırma ile karıştırılmamalıdır. UI sanallaştırma depoları yalnızca görünen öğeleri bellek, ancak veri bağlama senaryosunda tüm veri yapısını bellekte depolar. Buna karşılık, veri sanallaştırma, bellekte ekranda görünen veri öğeleri depolar.

Varsayılan olarak, kullanıcı Arabirimi sanallaştırma için etkinleştirilmiş olan ListView ve ListBox , kendi liste öğeleri için veri ilişkili denetimleri TreeViewSanallaştırma ayarlayarak etkinleştirilebilir VirtualizingStackPanel.IsVirtualizing özelliğine bağlı true. UI sanallaştırma türetilmeli özel denetimler için etkinleştirmek istediğiniz ItemsControl ya da varolan bir öğeyi denetimleri kullanan StackPanel class, gibi ComboBox, ayarlayabileceğiniz ItemsPanel için VirtualizingStackPanel ve IsVirtualizing için true. Ne yazık ki, bu denetimler için UI sanallaştırma resminize fark etmeden getirebilirsiniz. UI sanallaştırma devre dışı koşullar listesi aşağıdadır.

Şu anda herhangi bir wpf denetimleri veri sanallaştırma için yerleşik destek sunar.

Recycling container

UI sanallaştırma eklenmiş bir iyileştirme.net Framework 3.5 SP1'den devralan denetimler için ItemsControl olan kapsayıcı geri dönüşümü, , ayrıca kaydırma performansı geliştirebilir. Zaman bir ItemsControl , kullandığı UI sanallaştırma doldurulan, oluşturduğu bir madde kapsayıcıyı kaydıran gelsin ve dışında kaydıran her madde için madde konteyneri bozar her öğe içingörünümü. Kapsayıcı recycling varolan madde konteynerleri, farklı veri maddeler için madde konteynerleri değil sürekli olarak oluşturulur ve kullanıcının ilerledikçe zarar böylece yeniden olanak tanır ItemsControl. Madde ayarlayarak geri dönüşümünü etkinleştirmek seçebilirsiniz VirtualizationMode için Recycling.

Aşağıdaki durumlardan biri doğruysa, kapsayıcı recycling kullanılmaz:

Madde konteynerleri geri dönüşüm sırasında önemli bir öğe ile ait bir madde kapsayıcı ile ilişkili ek durum bilgileri olup husustur. Bu durumda, ek durum kaydetmeniz gerekir. Örneğin, bir madde içerdiği olabilir bir Expander Denetim ve IsExpanded durumuna bağlı olduğu maddenin kapsayıcı ve madde için değil. Ne zaman kapsayıcı tekrar yeni bir öğe için geçerli değeri IsExpanded için yeni bir madde. Buna ek olarak, eski maddenin doğru kaybediyor IsExpanded değer.

Tüm ItemsControl sanallaştırma recycling container kullanabilirsiniz destekleyen. Kapsayıcı üzerinde geri dönüşümünü etkinleştirmek bir örnek için bir ListBox, bkz: Nasıl Yapılır: ListBox'ın Kayan Performansını Artırma.

Destek çift yönlü sanallaştırma

VirtualizingStackPanelYatay veya dikey olarak tek bir yönde, UI sanallaştırma için yerleşik destek sağlar. Çift yönlü sanallaştırma için denetimleri kullanmak isterseniz, genişleten özel bir panel uygulamalıdır VirtualizingStackPanel sınıfa VirtualizingStackPanel Sınıf sergiler gibi sanal yöntemleri OnViewportSizeChanged, LineUp, PageUp, ve MouseWheelUp.Bu sanal yöntemler listesi görünür kısmında bir değişikliği algılar ve buna göre işleyen sağlar.

Şablonlar en iyi duruma getirme

Görsel ağacı, bir uygulamadaki tüm görsel öğeler içerir. Doğrudan oluşturulan nesnelerin yanı sıra, şablon genişletme yüzünden nesneleri de içerir. Örneğin, oluşturduğunuzda bir Button, de get ClassicBorderDecorator ve ContentPresenter nesneleri görsel bir ağaç. Denetim şablonlarınızı optimize yapmadıysanız, çok fazla gereksiz nesneleri görsel ağaç oluşturuyor olabilir. Görsel ağaç ile ilgili daha fazla bilgi için bkz: WPF Grafik İşleme Genel Bakış.

Kaydırma ertelenmiş

Varsayılan olarak, kullanıcı bir kaydırma çubuğu kaydırma kutusu sürüklendiğinde içerik görünümü sürekli olarak güncelleştirir. Kaydırma denetimi yavaşsa kullanarak kaydırma ertelenmiş düşünün. Yalnızca kullanıcı başparmak bıraktığında kaydırma ertelenmiş, içerik güncelleştirilir.

Ertelenmiş kaydırma uygulamak için IsDeferredScrollingEnabled özelliğine true. IsDeferredScrollingEnabledbağlı bir özelliktir ve ayarlanabilir ScrollViewer ve sahip herhangi bir denetimi bir ScrollViewer , Denetim şablonu.

O Implement performans özellikleri denetler

Aşağıdaki tabloda, veri ve Destek performans özellikleri görüntülemek için ortak denetimleri listelenir. Bu özellikleri etkinleştirme hakkında bilgi için yukarıdaki bölümlerden bakın.

Control

Virtualization

Recycling container

Kaydırma ertelenmiş

ComboBox

Etkinleştirilebilir

Etkinleştirilebilir

Etkinleştirilebilir

ContextMenu

Etkinleştirilebilir

Etkinleştirilebilir

Etkinleştirilebilir

DocumentViewer

Not available

Not available

Etkinleştirilebilir

ListBox

Default

Etkinleştirilebilir

Etkinleştirilebilir

ListView

Default

Etkinleştirilebilir

Etkinleştirilebilir

TreeView

Etkinleştirilebilir

Etkinleştirilebilir

Etkinleştirilebilir

ToolBar

Not available

Not available

Etkinleştirilebilir

NotNot

Sanallaştırma ve kapsayıcı üzerinde geri dönüşümünü etkinleştirmek bir örnek için bir TreeView, bkz: Nasıl Yapılır: TreeView Performansını İyileştirme.

Ayrıca bkz.

Görevler

İzlenecek Yol: wpf uygulamasındaki uygulama verileri önbelleğe alma

Kavramlar

Düzen Sistemi

Performansı En İyi Duruma Getirme: Düzen ve Tasarım

Performans İyileştirme Veri Bağlama

Denetimler

Stillendirme ve Şablon Oluşturma