Compartilhar via


Modelo de conteúdo WPF

Windows Presentation Foundation (WPF)é uma plataforma de apresentação que fornece muitos controles e tipos de controle cujo objetivo principal é exibir diferentes tipos de conteúdo. Para determinar qual controle derivar de ou qual controle usar, você deve entender os tipos de objetos de que um determinado controle melhor pode exibir.

Este tópico resume o modelo de conteúdo para WPF e controle todos os tipos semelhantes de controle. O modelo de conteúdo descreve o conteúdo que pode ser usado em um controle. Este tópico também lista as propriedades de conteúdo para cada modelo de conteúdo. A content property is a property that is used to store the content of the object.

Este tópico contém as seguintes seções.

  • Classes que contêm conteúdo arbitrário
  • Classes que contêm uma coleção de objetos de UIElement
  • Classes que afetam a aparência de um UIElement.
  • Classes que fornecem Feedback Visual sobre um UIElement.
  • Classes que permitem aos usuários inserir texto
  • Classes que exibem o texto.
  • Classes que formatam o texto
  • Tópicos relacionados

Classes que contêm conteúdo arbitrário

Alguns controles podem conter um objeto de qualquer tipo, como, por exemplo, uma seqüência de caracteres, um DateTime o objeto, ou um UIElement isto é um recipiente para itens adicionais. Por exemplo, um Button pode conter uma imagem e texto; ou um CheckBox pode conter o valor de DateTime.Now.

WPFtem quatro classes que podem conter conteúdo arbitrário. A tabela a seguir lista as classes que herdam de Control.

Classe que contém o conteúdo arbitrário

Content

ContentControl

Um único objeto arbitrário.

HeaderedContentControl

Um cabeçalho e um único item, que são objetos arbitrários.

ItemsControl

Uma coleção de objetos arbitrários.

HeaderedItemsControl

Um cabeçalho e uma coleção de itens, que são objetos arbitrários.

Controles que herdam essas classes podem conter o mesmo tipo de conteúdo e tratar o conteúdo da mesma maneira. A ilustração a seguir mostra um controle de cada modelo de conteúdo que contenha uma imagem e texto.

Button, GroupBox, Listbax, TreeViewItem

Controles que contêm um único objeto arbitrário

O ContentControl classe contém uma única parte do conteúdo arbitrário. É de sua propriedade content Content. Os seguintes controles herdam ContentControl e usar o modelo de conteúdo:

A ilustração a seguir mostra quatro botões cuja Content é definida como uma seqüência de caracteres, um DateTime objeto, um Rectanglee um Panel que contém um Ellipse e um TextBlock.

Quatro botões têm diferentes tipos de conteúdo

Quatro botões

Para obter um exemplo de como definir o Content propriedade, consulte ContentControl.

Controles que contêm um cabeçalho e um único objeto arbitrário

O HeaderedContentControl classe herda de ContentControl e exibe o conteúdo com um cabeçalho. Ela herda a propriedade de conteúdo, Content, da ContentControl e define o Header que é do tipo de propriedade Object; Portanto, pode ser um objeto arbitrário.

Os seguintes controles herdam HeaderedContentControl e usar o modelo de conteúdo:

A ilustração a seguir mostra dois TabItem objetos. O primeiro TabItem tem UIElement objetos como o Header e o Content. O Header é definida como um StackPanel que contém um Ellipse e um TextBlock. O Content é definida como um StackPanel que contém um TextBlock e um Label. A segunda TabItem tem uma seqüência de caracteres na Header e um TextBlock na Content.

TabControl usa tipos diferentes na propriedade de cabeçalho

TabControl

Para obter um exemplo de como criar TabItem objetos, consulte HeaderedContentControl.

Controles que contêm uma coleção de objetos arbitrários

O ItemsControl classe herda de Control e pode conter vários itens, como seqüências de caracteres, objetos ou outros elementos. Suas propriedades de conteúdo são ItemsSource e Items. ItemsSourcenormalmente é usado para preencher o ItemsControl com um conjunto de dados. Se você não quiser usar uma coleção para preencher o ItemsControl, você pode adicionar itens usando o Items propriedade.

Os seguintes controles herdam ItemsControl e usar o modelo de conteúdo:

A ilustração a seguir mostra um ListBox que contém esses tipos de itens:

Caixa de listagem que contém vários tipos de objetos

ListBox com quatro tipos de conteúdo

Controles que contêm um cabeçalho e uma coleção de objetos arbitrários

O HeaderedItemsControl classe herda de ItemsControl e pode conter vários itens, como seqüências de caracteres, objetos, ou outros elementos e um cabeçalho. Ele herda o ItemsControl Propriedades de conteúdo ItemsSource, e Items, e define o Header propriedade que pode ser um objeto arbitrário.

Os seguintes controles herdam HeaderedItemsControl e usar o modelo de conteúdo:

Classes que contêm uma coleção de objetos de UIElement

O Panel classe posiciona e organiza o filho UIElement objetos. É de sua propriedade content Children.

As seguintes classes herdam a Panel de classe e usar o modelo de conteúdo:

For more information, see Panels Overview.

Classes que afetam a aparência de um UIElement.

O Decorator classe aplica efeitos visuais em ou em torno de um único filho UIElement. É de sua propriedade content Child. As seguintes classes herdam de Decorator e usar o modelo de conteúdo:

A ilustração a seguir mostra um TextBox que possui (está decorado com) uma Border em torno do proprietário.

TextBlock tem uma borda

TextBox com borda preta

Classes que fornecem Feedback Visual sobre um UIElement.

O Adorner classe fornece dicas visuais para um usuário. Por exemplo, usar um Adorner para adicionar alças funcionais a elementos ou fornecer informações de estado sobre um controle. O Adorner classe fornece uma estrutura para que você pode criar seus próprios adorners. WPFnão fornece qualquer adorners implementadas. For more information, see Visão Geral de Adornos.

Classes que permitem aos usuários inserir texto

O WPF fornece três principais controles que permitem aos usuários inserir texto. Cada controle exibe o texto de forma diferente. A tabela a seguir lista esses três texto controles relacionados, seus recursos quando eles exibem o texto e suas propriedades que contêm o texto do controle.

Control

Texto é exibido como

Propriedade Content

TextBox

Texto sem formatação

Text

RichTextBox

Texto formatado

Document

PasswordBox

(Os caracteres são mascarados) de texto oculto

Password

Classes que exibem o texto.

Várias classes podem ser usados para exibir texto sem formatação ou formatado. Você pode usar TextBlock para exibir pequenas quantidades de texto. Se você deseja exibir grandes quantidades de texto, use o FlowDocumentReader, FlowDocumentPageViewer, ou FlowDocumentScrollViewer controles.

O TextBlock tem duas propriedades de conteúdo: Text and Inlines. Quando você deseja exibir o texto que usa a formatação consistente, o Text propriedade é geralmente a melhor opção. Se você planeja usar uma formatação diferente em todo o texto, use o Inlines propriedade. O Inlines propriedade é uma coleção de Inline objetos, que especificam como formatar texto.

A tabela a seguir lista a propriedade content de FlowDocumentReader, FlowDocumentPageViewer, e FlowDocumentScrollViewer classes.

Control

Propriedade Content

Tipo de propriedade de conteúdo

FlowDocumentPageViewer

Document

IDocumentPaginatorSource

FlowDocumentReader

Document

FlowDocument

FlowDocumentScrollViewer

Document

FlowDocument

O FlowDocument implementa o IDocumentPaginatorSource interface; Portanto, todas as três classes podem levar uma FlowDocument como o conteúdo.

Classes que formatam o texto

TextElemente suas classes relacionados permitem que você formate o texto. TextElementobjetos contêm e formatar texto em TextBlock e FlowDocument objetos. Os dois principais tipos de TextElement os objetos são Block elementos e Inline elementos. A Block elemento representa um bloco de texto, como um parágrafo ou lista. Um Inline elemento representa uma parte do texto em um bloco. Muitos Inline classes especificam a formatação do texto ao qual são aplicadas. Cada TextElement tem seu próprio modelo de conteúdo. Para obter mais informações, consulte o Visão geral do modelo Conteúdo TextElement.

Consulte também

Outros recursos

WPF Fundamentals