ItemsPanelTemplate Classe

Definição

Especifica o painel que o ItemsPresenter cria para a disposição 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 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. Note-se que neste exemplo, em vez de definir a ItemsPanel propriedade como no exemplo anterior, o horizontal StackPanel é especificado dentro do ControlTemplate. Note que 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. Portanto, só faça isto se souber que não gostaria que o quadro 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>

Para um exemplo de como usar as diferentes propriedades de estilização e de templates no ItemsControl, veja Visão Geral de Templação de Dados.

Observações

Especifica ItemsPanelTemplate o painel utilizado para a disposição 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 ListBox, o padrão usa o VirtualizingStackPanel. Para MenuItem, o padrão usa WrapPanel. Para StatusBar, o padrão usa DockPanel.

Construtores

Name Description
ItemsPanelTemplate()

Inicializa uma instância da ItemsPanelTemplate classe.

ItemsPanelTemplate(FrameworkElementFactory)

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

Propriedades

Name Description
Dispatcher

Percebe o Dispatcher que isto DispatcherObject está associado.

(Herdado de DispatcherObject)
HasContent

Recebe 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á num estado imutável, pelo que não pode ser alterado.

(Herdado de FrameworkTemplate)
Resources

Obtém ou define a coleção de recursos que podem ser usados dentro do âmbito deste modelo.

(Herdado de FrameworkTemplate)
Template

Obtém ou define uma referência ao objeto que grava ou reproduz os nós XAML do template quando o template é definido ou aplicado por um escritor.

(Herdado de FrameworkTemplate)
VisualTree

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

(Herdado de FrameworkTemplate)

Métodos

Name Description
CheckAccess()

Determina se o thread que chama 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)

Encontra o elemento associado ao nome especificado definido neste modelo.

(Herdado de FrameworkTemplate)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
LoadContent()

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

(Herdado de FrameworkTemplate)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
RegisterName(String, Object)

Regista um novo par nome/objeto no âmbito de nomes atual.

(Herdado de FrameworkTemplate)
Seal()

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

(Herdado de FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

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

(Herdado de FrameworkTemplate)
ShouldSerializeVisualTree()

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

(Herdado de FrameworkTemplate)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
UnregisterName(String)

Remove um mapeamento nome/objeto do namescope XAML.

(Herdado de FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Verifica se o pai templateado é um objeto não-nulo ItemsPresenter .

VerifyAccess()

Faz cumprir que o thread que chama tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)

Implementações de Interface Explícita

Name Description
INameScope.FindName(String)

Devolve um objeto que tem o nome identificativo fornecido.

(Herdado de FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

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

(Herdado de FrameworkTemplate)

Aplica-se a