ItemsControl.ItemsPanel Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o modelo que define o painel que controla o layout 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 da propriedade
Um ItemsPanelTemplate que define o painel a ser usado para o layout dos itens. O valor padrão do ItemsControl é um ItemsPanelTemplate que especifica um StackPanel.
- Atributos
Exemplos
Para criar um ListBoxhorizontal, você pode criar um modelo que especifica um StackPanel horizontal e defini-lo como a propriedade ItemsPanel. O exemplo a seguir mostra um ListBoxStyle que cria um ListBoxhorizontal.
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center"
HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
O exemplo a seguir usa um ControlTemplate para criar uma ListBox horizontal que tenha cantos arredondados. Neste exemplo, em vez de definir a propriedade ItemsPanel como no exemplo anterior, o StackPanel horizontal é especificado no ControlTemplate. A propriedade IsItemsHost é definida como true
no StackPanel, indicando que os itens gerados devem ir para o painel. Quando você o especifica dessa forma, o ItemsPanel não pode ser substituído pelo usuário do controle sem usar um ControlTemplate. Portanto, faça isso somente se souber que não deseja que o painel seja 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>
Como alternativa, você pode fazer o seguinte para obter os mesmos resultados. Nesse caso, o ItemsPresenter cria o painel para o layout 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>
Comentários
Para o ListBox, o ItemsPanelTemplate padrão especifica o VirtualizingStackPanel. Para MenuItem, o padrão usa WrapPanel. Para StatusBar, o padrão usa DockPanel.
Para afetar o layout dos itens em um ItemsControl, use essa propriedade para especificar um ItemsPanelTemplate.
O ItemsControl oferece grande flexibilidade para personalização visual e fornece muitas propriedades de modelagem e estilo. Use a propriedade ItemContainerStyle ou a propriedade ItemContainerStyleSelector para definir um estilo para afetar a aparência dos elementos que contêm os itens de dados. Por exemplo, para ListBox, os contêineres gerados são ListBoxItem controles; para ComboBox, eles são ComboBoxItem controles. Se você estiver usando o agrupamento em seu controle, poderá usar a propriedade GroupStyle ou GroupStyleSelector. Para especificar a visualização dos objetos de dados, use o ItemTemplate ou a propriedade ItemTemplateSelector. Para obter mais informações, consulte Visão geral da modelagem de dados.
Informações da propriedade Dependency
Campo identificador | ItemsPanelProperty |
Propriedades de metadados definidas como true |
Nenhum |