Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

Propriedade ItemsControl.ItemsPanel

Obtém ou define o modelo que define o painel que controla o layout dos itens.

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(false)]
public ItemsPanelTemplate ItemsPanel { get; set; }
<object>
  <object.ItemsPanel>
    <ItemsPanelTemplate .../>
  </object.ItemsPanel>
</object>

Valor de propriedade

Tipo: System.Windows.Controls.ItemsPanelTemplate
Um ItemsPanelTemplate que define o painel a ser usado para o layout dos itens. O valor padrão para o ItemsControl é um ItemsPanelTemplate que especifica um StackPanel.

Campo identificador

ItemsPanelProperty

Propriedades de metadados definidas como true

None

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 o layout dos itens em um ItemsControl, você usar essa propriedade para especificar um ItemsPanelTemplate.

O ItemsControl fornece grande flexibilidade para personalização visual e fornece vários estilos e propriedades de modelagem. Você pode usar o ItemContainerStyle propriedade ou o ItemContainerStyleSelector propriedade para definir um estilo de 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 no seu controle, você pode usar o GroupStyle ou GroupStyleSelector propriedade. Para especificar a visualização dos objetos de dados, use o ItemTemplate ou ItemTemplateSelector propriedade. Para obter mais informações, consulte Visão geral sobre Templating de dados.

Para criar um horizontal ListBox, você pode criar um modelo que especifica um horizontal StackPanel e defini-la como a ItemsPanel propriedade. A exemplo a seguir mostra um ListBox Style 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 a seguir utiliza um ControlTemplate para criar um horizontal ListBox que são arredondadas cantos. Neste exemplo, ao invés de definir o ItemsPanel propriedade como no exemplo anterior, horizontal StackPanel é especificado dentro do ControlTemplate. O IsItemsHost for definida como true sobre o StackPanel, indicando que os itens gerados devem ir no painel. Quando você especifica dessa forma, o ItemsPanel não pode ser substituído pelo usuário do controle sem usar um ControlTemplate. Portanto, faça isso apenas se você souber que você não faria o painel a ser 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>


.NET Framework

Com suporte em: 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.

Contribuições da comunidade

Mostrar:
© 2014 Microsoft