Model obsahu WPF
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 kon režim stanu l pro typy řízení a řízení WPF. Con režim stanu l popisuje, jaký obsah lze použít v ovládacím prvku. Toto téma obsahuje také vlastnosti obsahu pro každou kon režim stanu l. 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 con režim stanu l, 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 kon režim stanu l:
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í a ContentControl zobrazuje obsah s hlavičkou. Dědí vlastnost obsahu , Contentz a definuje Header vlastnost, která je typu Object; proto oba mohou být libovolným ContentControl objektem.
Následující ovládací prvky dědí a HeaderedContentControl používají jeho kon režim stanu l:
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 v řetězci Header a TextBlock v sadě 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í a Control může obsahovat více položek, jako jsou řetězce, objekty nebo jiné 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 kon režim stanu l:
Následující obrázek ukazuje ListBox , že obsahuje tyto typy položek:
Ovládací prvky, které obsahují záhlaví a kolekci libovolných objektů
Třída HeaderedItemsControl dědí a ItemsControl může obsahovat více položek, jako jsou řetězce, objekty nebo jiné prvky a záhlaví. Dědí ItemsControl vlastnosti ItemsSourceobsahu a Itemsa definuje Header vlastnost, která může být libovolným objektem.
Následující ovládací prvky dědí a HeaderedItemsControl používají jeho kon režim stanu l:
Třídy obsahující kolekci objektů UIElement
Pozice Panel třídy a uspořádání podřízených UIElement objektů. Jeho obsah vlastnost je Children.
Následující třídy dědí z Panel třídy a používají její con režim stanu l:
Další informace najdete v tématu 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í a Decorator používají její con režim stanu l:
Na následujícím obrázku je znázorněnoTextBox, které má kolem sebe (je zdobeno).Border
TextBlock, který má ohraničení
Třídy, které poskytují vizuální zpětnou vazbu k UIElement
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 tématu Přehled doplňku 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.
Ctrl | 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í FlowDocumentReaderprvky , FlowDocumentPageViewernebo 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.
Ctrl | Vlastnost obsahu | Typ vlastnosti obsahu |
---|---|---|
FlowDocumentPageViewer | Dokument | IDocumentPaginatorSource |
FlowDocumentReader | Dokument | FlowDocument |
FlowDocumentScrollViewer | Dokument | FlowDocument |
Implementuje FlowDocumentIDocumentPaginatorSource rozhraní, a proto všechny tři třídy mohou mít jako FlowDocument obsah.
Třídy, které formátuje text
TextElement a související třídy umožňují formátovat text. TextElement objekty obsahují a formátují text v TextBlock objektech a FlowDocument objekty. 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í con režim stanu l. Další informace najdete v přehledu modelu obsahu TextElement.
Viz také
.NET Desktop feedback