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 horizontal ListBox, você pode criar um modelo que especifica um horizontal StackPanel e defini-lo como a ItemsPanel propriedade. O 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 usa um ControlTemplate para criar um horizontal ListBox que tenha cantos arredondados. Observe que neste exemplo, em vez de definir a ItemsPanel propriedade como no exemplo anterior, a horizontal StackPanel é especificada dentro do ControlTemplate. Observe que a IsItemsHost propriedade está definida true como no StackPanel, indicando que os itens gerados devem ir no painel. Quando você o especifica dessa forma, não ItemsPanel 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 painel cria 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 estilo e modelagem na visão geral da ItemsControlModelagem de Dados.

Comentários

Especifica ItemsPanelTemplate o painel usado para o layout dos itens. GroupStyle tem uma Panel propriedade que é do tipo ItemsPanelTemplate. ItemsControl os tipos têm uma ItemsPanel propriedade que é do tipo ItemsPanelTemplate.

Cada ItemsControl tipo tem um padrão ItemsPanelTemplate. Para a ItemsControl classe, o valor padrão ItemsPanel é um ItemsPanelTemplate que especifica um StackPanel. Para o ListBoxpadrão, 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 este DispatcherObject está associado.

(Herdado de DispatcherObject)
HasContent

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

(Herdado de FrameworkTemplate)
IsSealed

Obtém um valor que indica se este objeto está em um estado imutável, de modo a não poder ser alterado.

(Herdado de FrameworkTemplate)
Resources

Obtém ou define a coleção de recursos que podem ser usados dentro do 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 este 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 neste 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 Object atual.

(Herdado de Object)
RegisterName(String, Object)

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

(Herdado de FrameworkTemplate)
Seal()

Bloqueia o modelo de modo que ele não pode ser alterado.

(Herdado de FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Retorna um valor que indica se o processo de serialização deve serializar o valor da propriedade Resources em instâncias desta classe.

(Herdado de FrameworkTemplate)
ShouldSerializeVisualTree()

Retorna um valor que indica se o processo de serialização deve serializar o valor da propriedade VisualTree em instâncias desta 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 ao qual o modelo é aplicado é um objeto ItemsPresenter não nulo.

VerifyAccess()

Impõe que o thread de chamada tenha acesso a este 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 de ambiente especificada está disponível no escopo atual.

(Herdado de FrameworkTemplate)

Aplica-se a