Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Windows Presentation Foundation (WPF) je prezentační platforma, která poskytuje mnoho typů ovládacích prvků a typů podobných ovládacím prvkům, jejichž primárním účelem je zobrazit různé typy obsahu. Chcete-li určit, který ovládací prvek použít nebo který ovládací prvek má být odvozen, měli byste porozumět druhům objektů, které může určitý ovládací prvek nejlépe zobrazit.
Toto téma shrnuje model obsahu pro ovládací prvky WPF a typy podobné ovládacím prvkům. Model obsahu popisuje, jaký obsah lze použít v ovládacím prvku. Toto téma obsahuje také vlastnosti obsahu pro každý model obsahu. Vlastnost obsahu je vlastnost, která se používá k uložení obsahu objektu.
Třídy, které obsahují libovolný obsah
Některé ovládací prvky můžou obsahovat objekt libovolného typu, například řetězec, DateTime objekt nebo UIElement kontejner pro další položky. Například Button může obsahovat obrázek a nějaký text; nebo CheckBox může obsahovat hodnotu DateTime.Now.
WPF má čtyři třídy, které mohou obsahovat libovolný obsah. Následující tabulka uvádí třídy, které dědí z Control.
| Třída, která obsahuje libovolný obsah | Obsah |
|---|---|
| ContentControl | Jeden libovolný objekt. |
| HeaderedContentControl | Záhlaví a jedna položka, z nichž oba jsou libovolné objekty. |
| ItemsControl | Kolekce libovolných objektů. |
| HeaderedItemsControl | Záhlaví a kolekce položek, z nichž všechny jsou libovolné objekty. |
Ovládací prvky, které dědí z těchto tříd, mohou obsahovat stejný typ obsahu a zacházet s obsahem stejným způsobem. Následující obrázek znázorňuje jeden ovládací prvek z každého modelu obsahu, který obsahuje obrázek a nějaký text:
Ovládací prvky, které obsahují jeden libovolný objekt
Třída ContentControl obsahuje jeden kus libovolného obsahu. Jeho obsah vlastnost je Content. Následující ovládací prvky dědí a ContentControl používají jeho model obsahu:
Následující obrázek znázorňuje čtyři tlačítka, jejichž Content je nastavena na řetězec, DateTime objekt, Rectanglea a obsahující Panel znak Ellipse a TextBlock:
Příklad Content nastavení vlastnosti naleznete v tématu ContentControl.
Ovládací prvky, které obsahují záhlaví a jeden libovolný objekt
Třída HeaderedContentControl dědí od ContentControl a zobrazuje obsah s hlavičkou. Dědí vlastnost obsahu , Contentz a definuje ContentControl vlastnost, která je typu Header; proto oba mohou být libovolným Object objektem.
Následující ovládací prvky dědí a HeaderedContentControl používají jeho model obsahu:
Následující obrázek znázorňuje dva TabItem objekty. První TabItem obsahuje UIElement objekty jako Header a Content. Je Header nastavena StackPanel na hodnotu, která obsahuje a EllipseTextBlock. Je Content nastavena StackPanel na hodnotu, která obsahuje a TextBlock .Label Druhý TabItem má řetězec ve Header a TextBlock ve Content.
Příklad vytvoření TabItem objektů naleznete v tématu HeaderedContentControl.
Ovládací prvky obsahující kolekci libovolných objektů
Třída ItemsControl dědí z Control a může obsahovat více položek, jako jsou řetězce, objekty nebo další prvky. Jeho vlastnosti obsahu jsou ItemsSource a Items. ItemsSource se obvykle používá k naplnění kolekcí ItemsControl dat. Pokud nechcete použít kolekci k naplnění ItemsControl, můžete přidat položky pomocí Items vlastnosti.
Následující ovládací prvky dědí a ItemsControl používají jeho model obsahu:
Následující obrázek ukazuje ListBox, který obsahuje tyto typy položek:
Ovládací prvky, které obsahují záhlaví a kolekci libovolných objektů
Třída HeaderedItemsControl dědí od ItemsControl a může obsahovat více položek, jako jsou řetězce, objekty, jiné prvky nebo záhlaví. Dědí ItemsControl vlastnosti obsahu, ItemsSource a Items a definuje Header vlastnost, která může být libovolným objektem.
Následující ovládací prvky dědí a HeaderedItemsControl používají jeho model obsahu:
Třídy obsahující kolekci objektů UIElement
Třída Panel umísťuje a uspořádává podřízené objekty UIElement. Jeho obsah vlastnost je Children.
Následující třídy dědí z Panel třídy a používají jeho model obsahu:
Další informace viz Přehled panelů.
Třídy, které ovlivňují vzhled uiElement
Třída Decorator používá vizuální efekty na nebo kolem jednoho podřízeného UIElementobjektu . Jeho obsah vlastnost je Child. Následující třídy dědí z Decorator a používají jeho model obsahu:
Na následujícím obrázku je znázorněno TextBox, které má kolem sebe Border (je jím ozdobeno).
TextBlock, který má ohraničení
Třídy poskytující vizuální odezvu k UI prvku
Třída Adorner poskytuje vizuální upozornění pro uživatele. Můžete například použít Adorner k přidání funkčních popisovačů k prvkům nebo poskytnutí informací o stavu ovládacího prvku. Třída Adorner poskytuje architekturu, abyste mohli vytvořit vlastní doplňky. WPF neposkytuje žádné implementované doplňky. Další informace najdete v Přehled Adorners.
Třídy, které uživatelům umožňují zadat text
WPF poskytuje tři primární ovládací prvky, které uživatelům umožňují zadávat text. Každý ovládací prvek zobrazuje text jinak. Následující tabulka uvádí tyto tři ovládací prvky související s textem, jejich možnosti při zobrazení textu a jejich vlastnosti, které obsahují text ovládacího prvku.
| Řízení | Text se zobrazí jako | Vlastnost obsahu |
|---|---|---|
| TextBox | Prostý text | Text |
| RichTextBox | Formátovaný text | Document |
| PasswordBox | Skrytý text (znaky jsou maskované) | Password |
Třídy, které zobrazují váš text
K zobrazení prostého nebo formátovaného textu lze použít několik tříd. Můžete použít TextBlock k zobrazení malých objemů textu. Pokud chcete zobrazit velké množství textu, použijte ovládací FlowDocumentReader prvky, FlowDocumentPageViewer nebo FlowDocumentScrollViewer ovládací prvky.
Má TextBlock dvě vlastnosti obsahu: Text a Inlines. Pokud chcete zobrazit text, který používá konzistentní formátování, Text je tato vlastnost často vaší nejlepší volbou. Pokud máte v úmyslu používat v celém textu jiné formátování, použijte Inlines vlastnost. Vlastnost Inlines je kolekce Inline objektů, které určují, jak formátovat text.
Následující tabulka uvádí vlastnost obsahu pro FlowDocumentReader, FlowDocumentPageViewera FlowDocumentScrollViewer třídy.
| Řízení | Vlastnost obsahu | Typ vlastnosti obsahu |
|---|---|---|
| FlowDocumentPageViewer | Dokument | IDocumentPaginatorSource |
| FlowDocumentReader | Dokument | FlowDocument |
| FlowDocumentScrollViewer | Dokument | FlowDocument |
FlowDocument implementuje IDocumentPaginatorSource rozhraní; proto všechny tři třídy mohou mít jako obsah FlowDocument.
Třídy, které formátují text
TextElement a související třídy umožňují formátovat text. TextElement objekty obsahují a formátují text v TextBlock objektech a FlowDocument objektech. Dva primární typy TextElement objektů jsou Block prvky a Inline prvky. Prvek Block představuje blok textu, například odstavec nebo seznam. Prvek Inline představuje část textu v bloku. Mnoho Inline tříd určuje formátování textu, na který jsou použity. Každý TextElement má svůj vlastní model obsahu. Další informace najdete v přehledu modelu obsahu TextElement.
Viz také
.NET Desktop feedback