ItemsPanelTemplate Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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) |