ItemsPanelTemplate Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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) |