Compartilhar via


ItemsPanelTemplate Classe

Definição

Especifica o painel que o ItemsPresenter cria para o layout dos itens de um ItemsControl.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
Herança

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. Observe que, neste exemplo, em vez de definir a propriedade ItemsPanel como no exemplo anterior, o StackPanel horizontal é especificado no ControlTemplate. Observe que a propriedade IsItemsHost está 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>

Para obter um exemplo de como usar as diferentes propriedades de modelagem e estilo no ItemsControl, consulte Visão geral da modelagem de dados.

Comentários

O ItemsPanelTemplate especifica o painel usado para o layout dos itens. GroupStyle tem uma propriedade Panel do tipo ItemsPanelTemplate. ItemsControl tipos têm uma propriedade ItemsPanel do tipo ItemsPanelTemplate.

Cada tipo de ItemsControl tem um ItemsPanelTemplatepadrão. Para a classe ItemsControl, o valor de ItemsPanel padrão é um ItemsPanelTemplate que especifica um StackPanel. Para o ListBox, o padrão usa o VirtualizingStackPanel. Para MenuItem, o padrão usa WrapPanel. Para StatusBar, o padrão usa DockPanel.

Construtores

ItemsPanelTemplate()

Inicializa uma instância da classe ItemsPanelTemplate.

ItemsPanelTemplate(FrameworkElementFactory)

Inicializa uma instância da classe ItemsPanelTemplate com o modelo especificado.

Propriedades

Dispatcher

Obtém o Dispatcher ao qual esse DispatcherObject está associado.

(Herdado de DispatcherObject)
HasContent

Obtém um valor que indica se esse modelo tem conteúdo otimizado.

(Herdado de FrameworkTemplate)
IsSealed

Obtém um valor que indica se esse objeto está em um estado imutável para que ele não possa ser alterado.

(Herdado de FrameworkTemplate)
Resources

Obtém ou define a coleção de recursos que podem ser usados no escopo desse modelo.

(Herdado de FrameworkTemplate)
Template

Obtém ou define uma referência ao objeto que registra ou reproduz os nós XAML para o modelo quando o modelo é definido ou aplicado por um gravador.

(Herdado de FrameworkTemplate)
VisualTree

Obtém ou define o nó raiz do modelo.

(Herdado de FrameworkTemplate)

Métodos

CheckAccess()

Determina se o thread de chamada tem acesso a esse DispatcherObject.

(Herdado de DispatcherObject)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
FindName(String, FrameworkElement)

Localiza o elemento associado ao nome especificado definido dentro desse modelo.

(Herdado de FrameworkTemplate)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
LoadContent()

Carrega o conteúdo do modelo como uma instância de um objeto e retorna o elemento raiz do conteúdo.

(Herdado de FrameworkTemplate)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
RegisterName(String, Object)

Registra um novo par de nome/objeto no escopo do nome atual.

(Herdado de FrameworkTemplate)
Seal()

Bloqueia o modelo para que ele não possa ser alterado.

(Herdado de FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade Resources em instâncias dessa classe.

(Herdado de FrameworkTemplate)
ShouldSerializeVisualTree()

Retorna um valor que indica se os processos de serialização devem serializar o valor da propriedade VisualTree em instâncias dessa classe.

(Herdado de FrameworkTemplate)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
UnregisterName(String)

Remove um mapeamento de nome/objeto do namescope XAML.

(Herdado de FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Verifica se o pai modelo é um objeto de ItemsPresenter não nulo.

VerifyAccess()

Impõe que o thread de chamada tenha acesso a esse DispatcherObject.

(Herdado de DispatcherObject)

Implantações explícitas de interface

INameScope.FindName(String)

Retorna um objeto que tem o nome de identificação fornecido.

(Herdado de FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Consulta se uma propriedade ambiente especificada está disponível no escopo atual.

(Herdado de FrameworkTemplate)

Aplica-se a