Aracılığıyla paylaş


WPF İçerik Modeli

Windows Presentation Foundation (WPF), birincil amacı farklı içerik türlerini görüntülemek olan birçok denetim ve denetim benzeri tür sağlayan bir sunu platformudur. Hangi denetimin kullanılacağını veya hangi denetimin türetileceğini belirlemek için, belirli bir denetimin en iyi görüntüleyebileceğiniz nesne türlerini anlamanız gerekir.

Bu konu başlığında WPF denetimi ve denetim benzeri türler için içerik modeli özetlenmiştir. İçerik modeli, denetimde hangi içeriğin kullanılabileceğini açıklar. Bu konu başlığında, her içerik modelinin içerik özellikleri de listelenir. İçerik özelliği, nesnenin içeriğini depolamak için kullanılan bir özelliktir.

Rastgele içerik içeren sınıflar

Bazı denetimler dize, DateTime nesne veya UIElement ek öğeler için kapsayıcı gibi herhangi bir türde nesne içerebilir. Örneğin, bir Button resim ve metin içerebilir; veya CheckBox değerini DateTime.Nowiçerebilir.

WPF'nin rastgele içerik içerebilen dört sınıfı vardır. Aşağıdaki tabloda, öğesinden Controldevralan sınıflar listelenir.

Rastgele içerik içeren sınıf İçerik
ContentControl Tek bir rastgele nesne.
HeaderedContentControl Her ikisi de rastgele nesneler olan bir üst bilgi ve tek bir öğe.
ItemsControl Rastgele nesneler koleksiyonu.
HeaderedItemsControl Başlık ve rastgele nesnelerden oluşan bir öğe koleksiyonu.

Bu sınıflardan devralan denetimler aynı türde içerik içerebilir ve içeriği aynı şekilde işleyebilir. Aşağıdaki çizimde, her içerik modelinden bir resim ve bir metin içeren bir denetim gösterilmektedir:

Her içerik modelinden bir tane olan dört farklı denetimi gösteren ekran görüntüsü.

Tek Bir Rastgele Nesne İçeren Denetimler

Bir sınıf ContentControl tek bir rastgele içerik içerir. İçerik özelliği şeklindedir Content. Aşağıdaki denetimler, ContentControl öğesinden türetilir ve onun içerik modelini kullanır.

Aşağıdaki çizimde, Content'si bir dize, bir DateTime nesnesi, bir Rectangle ve bir Panel ile bir Ellipse içeren TextBlock olarak ayarlanmış dört düğme gösterilmektedir.

Farklı içerik türlerine sahip dört düğmeyi gösteren ekran görüntüsü.

Özelliğinin nasıl ayarlanacağına ilişkin Content bir örnek için bkz ContentControl. .

Üst Bilgi ve Tek Bir Serbestçe Seçilen Nesne İçeren Kontroller

HeaderedContentControl sınıfı ContentControl sınıfından devralır ve başlık içeren içeriği görüntüler. İçerik özelliğini Content öğesinden devralır ContentControl, ve türü Header olan Object özelliğini tanımlar; bu nedenle her ikisi de rastgele bir nesne olabilir.

Aşağıdaki denetimler, HeaderedContentControl öğesinden türetilir ve onun içerik modelini kullanır.

Aşağıdaki çizimde iki TabItem nesne gösterilmektedir. İlk TabItem, UIElement ve Header olarak Content nesnelerine sahiptir. Header bir StackPanel olarak ayarlanır ve bu StackPanel, bir TextBlock ve bir içerir. Content, StackPanel ve TextBlock içeren bir Label olarak ayarlanır. İkincisinde TabItem içinde bir dize ve Header içinde bir TextBlock vardır.

Header özelliğinde farklı türler kullanan TabControl.

Nesne oluşturma TabItem örneği için bkz HeaderedContentControl. .

Rastgele Nesne Koleksiyonu İçeren Denetimler

ItemsControl sınıfı öğesinden Control devralır ve dizeler, nesneler veya diğer öğeler gibi birden çok öğe içerebilir. İçerik özellikleri ItemsSource ve Items şeklindedir. ItemsSource genellikle ItemsControl'i bir veri koleksiyonuyla doldurmak için kullanılır. ItemsControl öğesini doldurmak için bir koleksiyon kullanmak istemiyorsanız, Items özelliğini kullanarak öğe ekleyebilirsiniz.

Aşağıdaki denetimler, ItemsControl öğesinden türetilir ve onun içerik modelini kullanır.

Aşağıdaki çizimde, bu tür öğeleri içeren bir ListBox gösterilmektedir:

Dört içerik türüne sahip bir ListBox'ın gösterildiği ekran görüntüsü.

Üst Bilgi ve Rastgele Nesne Koleksiyonu İçeren Denetimler

HeaderedItemsControl sınıfı öğesinden ItemsControl devralır ve dizeler, nesneler veya diğer öğeler gibi birden çok öğe ve üst bilgi içerebilir. Özelliklerini ItemsControl, ItemsSource ve Items devralır ve rastgele bir nesne olabilecek Header özelliğini tanımlar.

Aşağıdaki denetimler, HeaderedItemsControl öğesinden türetilir ve onun içerik modelini kullanır.

UIElement Nesneleri Koleksiyonu İçeren Sınıflar

Panel Sınıf, alt UIElement nesneleri konumlandırıp düzenler. İçerik özelliği şeklindedir Children.

Aşağıdaki sınıflar Panel sınıfından türetilmiştir ve onun içerik modelini kullanır.

Daha fazla bilgi için bkz. Panellere Genel Bakış.

UIElement Görünümünü Etkileyen Sınıflar

sınıfı, Decorator tek bir alt öğeye UIElementveya çevresinde görsel efektler uygular. İçerik özelliği şeklindedir Child. Aşağıdaki sınıflar içerik modelini devralır Decorator ve kullanır:

Aşağıdaki çizimde çevresinde bir TextBox bulunan (ile süslenmiş) bir Border gösterilmektedir.

Siyah kenarlıklı TextBox
Kenarlıklı TextBlock

UIElement Hakkında Görsel Geri Bildirim Sağlayan Sınıflar

sınıfı, Adorner kullanıcıya görsel ipuçları sağlar. Örneğin, öğelere işlevsel tanıtıcılar eklemek veya denetim hakkında durum bilgileri sağlamak için bir Adorner kullanın. Bu Adorner sınıfı, kendi süsleyicilerinizi oluşturabilmeniz için bir çerçeve sağlar. WPF, uygulanan herhangi bir donatıcı sağlamaz. Daha fazla bilgi için bkz . Donatıcılara Genel Bakış.

Kullanıcıların Metin Girmesini Sağlayan Sınıflar

WPF, kullanıcıların metin girmesini sağlayan üç birincil denetim sağlar. Her denetim metni farklı görüntüler. Aşağıdaki tabloda metinle ilgili bu üç denetim, metin görüntülediklerindeki yetenekleri ve denetimin metnini içeren özellikleri listelenmektedir.

Yönetim Metin şu şekilde görüntülenir: İçerik özelliği
TextBox Düz metin Text
RichTextBox Biçimlendirilmiş metin Document
PasswordBox Gizli metin (karakterler maskelenir) Password

Metninizi görüntüleyen sınıflar

Düz veya biçimlendirilmiş metinleri görüntülemek için çeşitli sınıflar kullanılabilir. Küçük miktarlarda metin görüntülemek için kullanabilirsiniz TextBlock . Büyük miktarda metin görüntülemek istiyorsanız , FlowDocumentReaderveya FlowDocumentPageViewer denetimlerini kullanınFlowDocumentScrollViewer.

iki TextBlock içerik özelliğine sahiptir: Text ve Inlines. Tutarlı biçimlendirme kullanan metinleri görüntülemek istediğinizde, Text özellik genellikle en iyi tercihinizdir. Metnin tamamında farklı biçimlendirme kullanmayı planlıyorsanız özelliğini kullanın Inlines . Inlines özelliği, metnin nasıl biçimlendirileceğini belirten bir nesne koleksiyonudurInline.

Aşağıdaki tabloda , FlowDocumentReaderve FlowDocumentPageViewer sınıfları için FlowDocumentScrollVieweriçerik özelliği listelemektedir.

Yönetim İçerik özelliği İçerik özelliği türü
FlowDocumentPageViewer Belge IDocumentPaginatorSource
FlowDocumentReader Belge FlowDocument
FlowDocumentScrollViewer Belge FlowDocument

FlowDocument arabirimini IDocumentPaginatorSource uygular; bu nedenle, üç sınıf da içerik olarak alabilirFlowDocument.

Metninizi Biçimlendiren Sınıflar

TextElement ve ilgili sınıfları metni biçimlendirmenize olanak sağlar. TextElement nesneleri, TextBlock ve FlowDocument nesnelerindeki metni içerir ve biçimlendirir. İki birincil nesne türü TextElement öğeler ve Block öğelerdirInline. Block Öğe, paragraf veya liste gibi bir metin bloğunu temsil eder. Öğe Inline , bloktaki metnin bir bölümünü temsil eder. Birçok Inline sınıf, uygulandıkları metin için biçimlendirme belirtir. Her TextElement birinin kendi içerik modeli vardır. Daha fazla bilgi için bkz . TextElement İçerik Modeline Genel Bakış.

Ayrıca bakınız