ItemsControl.ItemsPanel Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o modelo que define o painel que controla a disposição dos itens.
public:
property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
[<System.ComponentModel.Bindable(false)>]
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate
Valor de Propriedade
Um ItemsPanelTemplate que define o painel a usar para a disposição dos itens. O valor padrão para o ItemsControl é um ItemsPanelTemplate que especifica um StackPanel.
- Atributos
Exemplos
Para criar uma horizontal ListBox, pode criar um modelo que especifique uma horizontal StackPanel e defini-la como a ItemsPanel propriedade. O exemplo seguinte mostra um ListBoxStyle que cria um horizontal ListBox.
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
O exemplo seguinte usa a ControlTemplate para criar uma horizontal ListBox com cantos arredondados. Neste exemplo, em vez de definir a ItemsPanel propriedade como no exemplo anterior, a horizontal StackPanel é especificada dentro do ControlTemplate. A IsItemsHost propriedade está definida para true em , StackPanelindicando que os itens gerados devem ir no painel. Quando se especifica desta forma, o ItemsPanel não pode ser substituído pelo utilizador do controlo sem usar um ControlTemplate. Por isso, só faça isto se souber que não gostaria que o painel fosse substituído sem o uso de um modelo.
<Style TargetType="ListBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<Border CornerRadius="5" Background="{TemplateBinding ListBox.Background}">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"
IsItemsHost="True"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Em alternativa, pode fazer o seguinte para obter os mesmos resultados. Neste caso, o ItemsPresenter cria o painel para a disposição dos itens com base no que é especificado pelo ItemsPanelTemplate.
<Style TargetType="{x:Type ListBox}">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border CornerRadius="5"
Background="{TemplateBinding ListBox.Background}">
<ScrollViewer HorizontalScrollBarVisibility="Auto">
<ItemsPresenter/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Observações
Para o ListBox, o padrão ItemsPanelTemplate especifica o VirtualizingStackPanel. Para MenuItem, o padrão usa WrapPanel. Para StatusBar, o padrão usa DockPanel.
Para afetar a disposição dos itens num ItemsControl, usa esta propriedade para especificar um ItemsPanelTemplate.
Oferece ItemsControl grande flexibilidade para personalização visual e oferece muitas propriedades de estilo e modelagem. Usas a ItemContainerStyle propriedade ou a ItemContainerStyleSelector propriedade para definir um estilo que afete a aparência dos elementos que contêm os itens de dados. Por exemplo, para ListBox, os contentores gerados são ListBoxItem controlos; para ComboBox, são ComboBoxItem controlos. Se estiveres a usar agrupamento no teu controlo, podes usar a GroupStyle propriedade ou.GroupStyleSelector Para especificar a visualização dos objetos de dados, use a ItemTemplate ou a ItemTemplateSelector propriedade. Para mais informações, consulte Visão Geral da Templação de Dados.
Informação de Propriedade de Dependência
| Item | Value |
|---|---|
| Campo identificador | ItemsPanelProperty |
Propriedades dos metadados definidas como true |
None |