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 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 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 a seguir usa um ControlTemplate para criar uma 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 modelagem e estilo na visão geral de ItemsControlmodelagem de dados.

Comentários

Especifica ItemsPanelTemplate o painel usado para o layout dos itens. GroupStyle tem uma Panel propriedade do tipo ItemsPanelTemplate. ItemsControl os tipos têm uma ItemsPanel propriedade 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

Nome Description
ItemsPanelTemplate()

Inicializa uma instância da ItemsPanelTemplate classe.

ItemsPanelTemplate(FrameworkElementFactory)

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

Propriedades

Nome Description
Dispatcher

Obtém o Dispatcher que 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

Nome Description
CheckAccess()

Determina se o thread de chamada tem acesso a isso 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 Resources propriedade 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 VisualTree propriedade 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 não nulo ItemsPresenter .

VerifyAccess()

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

(Herdado de DispatcherObject)

Implantações explícitas de interface

Nome Description
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