Temel Öğelere Genel Bakış

içinde sınıfların yüksek bir yüzdesi, SDK belgelerinde temel öğe sınıfları olarak yaygın olarak başvurulan Windows Presentation Foundation (WPF) dört sınıftan türet edilir. Bu sınıflar UIElement , , ve FrameworkElement ContentElement FrameworkContentElement sınıflarıdır. hem DependencyObject hem de ortak bir temel sınıfı olduğundan sınıfı da UIElement ilgilidir ContentElement

WPF Sınıflarında Temel Öğe API'leri

Hem UIElement hem de , ContentElement DependencyObject 'den bir şekilde farklı yollar aracılığıyla türetildi. Bu düzeyde bölme, bir veya'ın kullanıcı arabiriminde nasıl ve uygulamada hangi amaçla UIElement ContentElement hizmet verdikleriyle ilgilenmektedir. UIElement ayrıca, temel alınan alt düzey grafik desteğini ortaya çıkaran bir sınıf Visual olan sınıf hiyerarşisinde de Windows Presentation Foundation (WPF) vardır. Visual bağımsız dikdörtgen ekran bölgeleri tanımlayarak bir işleme çerçevesi sağlar. Pratikte, daha büyük bir nesne modelini destekleyecek öğelere yöneliktir. Bunlar dikdörtgen ekran bölgeleri olarak tanımlanebilecek bölgelere ve içerik modelinin kasıtlı olarak daha açık olduğu bölgelerde işlemeye ve düzenlemeye UIElement yöneliktir. ContentElement , 'den türetilmemektedir; modeli, öğelerini yorumlayan ve tüketilmesi için eksiksiz bir sonuç üretecek okuyucu veya görüntüleyici gibi başka bir şey tarafından Visual ContentElement Visual Windows Presentation Foundation (WPF) tüketilmesidir. Bazı sınıflar içerik konakları olmak üzere tasarlanmıştır: bir veya daha fazla sınıf için barındırma ve işleme sağlar UIElement ContentElement DocumentViewer (bu tür bir sınıfa bir örnektir). ContentElement , biraz daha küçük nesne modellerine sahip öğeler için temel sınıf olarak kullanılır ve bir içinde barındırılan metin, bilgi veya belge içeriğine daha fazla adres UIElement verir.

Framework-Level ve Core-Level

UIElement , için temel sınıf olarak FrameworkElement ve için temel sınıf olarak görev ContentElement FrameworkContentElement yaptı. Bu sonraki sınıf düzeyinin nedeni, WPF çerçeve düzeyinden ayrı bir WPF çekirdek düzeyini desteklemektir ve bu bölüm API'lerin PresentationCore ve PresentationFramework derlemeleri arasında nasıl bölündüklerinde de mevcut olur. WPF çerçeve düzeyi, sunum için düzen yöneticisinin uygulanması da dahil olmak üzere temel uygulama ihtiyaçları için daha eksiksiz bir çözüm sunar. WPF çekirdek düzeyi, ek derlemenin yükünü almadan WPF büyük bir kullanımın bir yolunu sağlar. Bu düzeyler arasındaki ayrım çoğu tipik uygulama geliştirme senaryosu için nadiren önemlidir ve genel olarak API'leri bir bütün olarak düşünmeli ve WPF çerçeve düzeyi ile WPF çekirdek düzeyi arasındaki farkla WPF kaygılanmazsınız. Uygulama tasarımınız önemli miktarda WPF çerçeve düzeyi işlevinin yerini almaya karar verdiyse, örneğin genel çözümde zaten kendi bileşim ve düzen uygulamaları varsa, düzey farkları kullanıcı arabirimi (UI) hakkında bilgi sahibi olmak zorundayabilirsiniz.

Türetilen Öğeyi Seçme

Genişletilen özel bir sınıf oluşturmanın en pratik yolu, mevcut sınıf hiyerarşisi aracılığıyla istediğiniz işlevselliği mümkün olduğunca çok elde etmek için sınıflardan biri WPF WPF türetmedir. Bu bölümde, hangi sınıftan devralınacak olduğuna karar verme konusunda yardımcı olmak için en önemli öğe sınıflarından üçüyle birlikte gelen işlevler listelemektedir.

Bir sınıftan türetmenin en yaygın nedenlerinden biri olan bir denetim uygulayıyorsanız, büyük olasılıkla pratik denetim, denetim ailesi temel sınıfı veya en azından temel sınıftan türetilen bir sınıftan türetmek WPF Control istiyorsanız. Bazı kılavuzlar ve pratik örnekler için bkz. Denetim Yazmaya Genel Bakış.

Bir denetim oluşturamazsanız ve hiyerarşide daha yüksek bir sınıftan türetmeniz gerekirse, aşağıdaki bölümler her temel öğe sınıfında hangi özelliklerin tanımlandığına yönelik bir kılavuz olarak tasarlanmıştır.

'den türeten bir sınıf DependencyObject sanız, aşağıdaki işlevselliği devralın:

  • GetValue ve SetValue desteği ile genel özellik sistemi desteği.

  • Bağımlılık özellikleri olarak uygulanan bağımlılık özelliklerini ve ekli özellikleri kullanma olanağı.

'den türetilen bir sınıf oluşturmanız, tarafından sağlanana ek olarak UIElement aşağıdaki işlevselliği DependencyObject devralın:

'den türetilen bir sınıf oluşturmanız, tarafından sağlanana ek olarak FrameworkElement aşağıdaki işlevselliği UIElement devralın:

  • Stil ve storyboard desteği. Daha fazla bilgi için Style bkz. ve Storyboards'a Genel Bakış.

  • Veri bağlama desteği. Daha fazla bilgi için bkz. Veri Bağlamaya Genel Bakış.

  • Dinamik kaynak başvuruları desteği. Daha fazla bilgi için bkz. XAML Kaynakları.

  • Özellik değeri devralma desteği ve meta veri bağlama, stiller veya düzenin çerçeve uygulaması gibi çerçeve hizmetleriyle ilgili koşulları bildirmeye yardımcı olan meta veri bayrakları. Daha fazla bilgi için bkz. Framework Özellik Meta Verileri.

  • Mantıksal ağaç kavramı. Daha fazla bilgi için bkz. WPF'de Ağaçlar.

  • Düzeni etkileyen özelliklerde yapılan değişiklikleri algılayan bir geçersiz kılma da dahil olmak üzere düzen sisteminin pratik WPF OnPropertyChanged çerçeve düzeyi uygulaması desteği.

'den türetilen bir sınıf oluşturmanız, tarafından sağlanana ek olarak ContentElement aşağıdaki işlevselliği DependencyObject devralın:

'den türetilen bir sınıf FrameworkContentElement oluşturmanız, tarafından sağlanana ek olarak aşağıdaki işlevleri de elde ContentElement etmektir:

  • Stil ve storyboard desteği. Daha fazla bilgi için bkz. Style ve Animasyona Genel Bakış.

  • Veri bağlama desteği. Daha fazla bilgi için bkz. Veri Bağlamaya Genel Bakış.

  • Dinamik kaynak başvuruları desteği. Daha fazla bilgi için bkz. XAML Kaynakları.

  • Özellik değeri devralma desteği ve meta veri bağlama, stiller veya düzenin çerçeve uygulaması gibi çerçeve hizmetleriyle ilgili koşulları bildirmeye yardımcı olan meta veri bayrakları. Daha fazla bilgi için bkz. Framework Özellik Meta Verileri.

  • Düzen sistemi değişikliklerine (örneğin, ) erişimi ArrangeOverride devralmazsınız. Düzen sistemi uygulamaları yalnızca üzerinde FrameworkElement kullanılabilir. Ancak, düzeni etkileyen özelliklerde yapılan değişiklikleri algılayan ve bunları herhangi bir içerik ana bilgisayarlarına OnPropertyChanged raporlayan bir geçersiz kılma devralın.

İçerik modelleri çeşitli sınıflar için belgelenmiş. Bir sınıfın içerik modeli, türetilen uygun bir sınıf bulmak istediğiniz olası faktörlerden biri olabilir. Daha fazla bilgi için bkz. WPF İçerik Modeli.

Diğer Temel Sınıflar

Dispatcherobject

DispatcherObject , iş parçacığı oluşturma WPF modeli için destek sağlar ve uygulamalar için oluşturulan tüm nesnelerin bir ile WPF ilişkilendirilene olanak Dispatcher sağlar. , veya türetmemiş olsa bile, bu iş parçacığı modeli desteğini almak için 'den UIElement DependencyObject Visual DispatcherObject türetmeyi göz önünde bulundurabilirsiniz. Daha fazla bilgi için bkz. İş Parçacığı Modeli.

Görsel

Visual genellikle kabaca dikdörtgen bir bölgede görsel sunum gerektiren bir 2D nesne kavramını uygulamaya almaktadır. Bir gerçek işlemesi diğer sınıflarda gerçekleşir (kendi içinde değildir), ancak sınıfı çeşitli düzeylerde işleme işlemleri tarafından kullanılan bilinen Visual Visual bir tür sağlar. Visual isabet testlerini uygulamaya alır, ancak isabet testi pozitif sonuç bildiren olayları ortaya çıkarmaz (bunlar UIElement içindedir). Daha fazla bilgi için bkz. Görsel Katman Programlama.

Freezable

Freezable , sabit bir nesne gerektiğinde veya performans nedenleriyle istenerek nesnenin kopyalarını oluşturmak için bir araç sağlayarak, değiştirilebilir bir nesnede sabitliği benzetir. Tür, geometriler ve fırçalar gibi belirli grafik öğelerinin yanı sıra Freezable animasyonlar için ortak bir temel sağlar. Özellikle , bir değildir; başka bir nesnenin özellik değerini doldurmak için uygulandığında alt özelliklere dönüşen özellikleri tutabilir ve bu alt özellikler Freezable Visual Freezable işlemeyi etkileyebilir. Daha fazla bilgi için bkz. Freezable Nesnelerine Genel Bakış.

Animatable

Animatable , animasyon denetim katmanını ve bazı yardımcı program üyelerini özel olarak ekleyen türetilmiş bir sınıftır; böylece şu anda animasyonlu özellikler, olmayan Freezable özelliklerden ayırt edilebilir.

Denetim

Control , teknolojiye bağlı olarak bir denetim veya bileşen olarak da ifadelanan nesne türü için hedeflenen temel sınıftır. Genel olarak, WPF denetim sınıfları doğrudan bir UI denetimi temsil eden veya denetim bileşimine yakından katılan sınıflardır. Sağlayan birincil işlev Control denetim templating'tir.

Ayrıca bkz.