Condividi tramite


ItemsPanelTemplate Classe

Definizione

Specifica il pannello creato dal ItemsPresenter per il layout degli elementi di un ItemsControl.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
Ereditarietà

Esempio

Per creare un ListBoxorizzontale, è possibile creare un modello che specifica un StackPanel orizzontale e impostarlo come proprietà ItemsPanel. Nell'esempio seguente viene illustrato un ListBoxStyle che crea un ListBoxorizzontale.

<Style TargetType="ListBox">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
</Style>

Nell'esempio seguente viene utilizzata una ControlTemplate per creare un ListBox orizzontale con angoli arrotondati. Si noti che in questo esempio, anziché impostare la proprietà ItemsPanel come nell'esempio precedente, il StackPanel orizzontale viene specificato all'interno del ControlTemplate. Si noti che la proprietà IsItemsHost è impostata su true nella StackPanel, a indicare che gli elementi generati devono essere inseriti nel pannello. Quando si specifica in questo modo, il ItemsPanel non può essere sostituito dall'utente del controllo senza utilizzare un ControlTemplate. Pertanto, eseguire questa operazione solo se si sa che non si vuole che il pannello venga sostituito senza l'uso di un modello.

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

In alternativa, è possibile eseguire le operazioni seguenti per ottenere gli stessi risultati. In questo caso, il ItemsPresenter crea il pannello per il layout degli elementi in base a quanto specificato dal 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>

Per un esempio di come usare le diverse proprietà di applicazione di stili e modelli nell'ItemsControl, vedere panoramica modello di dati.

Commenti

Il ItemsPanelTemplate specifica il pannello utilizzato per il layout degli elementi. GroupStyle dispone di una proprietà Panel di tipo ItemsPanelTemplate. i tipi ItemsControl hanno una proprietà ItemsPanel di tipo ItemsPanelTemplate.

Ogni tipo di ItemsControl ha un ItemsPanelTemplatepredefinito. Per la classe ItemsControl, il valore ItemsPanel predefinito è un ItemsPanelTemplate che specifica un StackPanel. Per il ListBox, l'impostazione predefinita usa l'VirtualizingStackPanel. Per MenuItem, il valore predefinito usa WrapPanel. Per StatusBar, il valore predefinito usa DockPanel.

Costruttori

ItemsPanelTemplate()

Inizializza un'istanza della classe ItemsPanelTemplate.

ItemsPanelTemplate(FrameworkElementFactory)

Inizializza un'istanza della classe ItemsPanelTemplate con il modello specificato.

Proprietà

Dispatcher

Ottiene il Dispatcher a cui è associato questo DispatcherObject.

(Ereditato da DispatcherObject)
HasContent

Ottiene un valore che indica se questo modello ha contenuto ottimizzato.

(Ereditato da FrameworkTemplate)
IsSealed

Ottiene un valore che indica se l'oggetto è in uno stato non modificabile in modo che non possa essere modificato.

(Ereditato da FrameworkTemplate)
Resources

Ottiene o imposta la raccolta di risorse che possono essere utilizzate nell'ambito di questo modello.

(Ereditato da FrameworkTemplate)
Template

Ottiene o imposta un riferimento all'oggetto che registra o riproduce i nodi XAML per il modello quando il modello viene definito o applicato da un writer.

(Ereditato da FrameworkTemplate)
VisualTree

Ottiene o imposta il nodo radice del modello.

(Ereditato da FrameworkTemplate)

Metodi

CheckAccess()

Determina se il thread chiamante ha accesso a questo DispatcherObject.

(Ereditato da DispatcherObject)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FindName(String, FrameworkElement)

Trova l'elemento associato al nome specificato definito all'interno di questo modello.

(Ereditato da FrameworkTemplate)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
LoadContent()

Carica il contenuto del modello come istanza di un oggetto e restituisce l'elemento radice del contenuto.

(Ereditato da FrameworkTemplate)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
RegisterName(String, Object)

Registra una nuova coppia nome/oggetto nell'ambito del nome corrente.

(Ereditato da FrameworkTemplate)
Seal()

Blocca il modello in modo che non possa essere modificato.

(Ereditato da FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà Resources nelle istanze di questa classe.

(Ereditato da FrameworkTemplate)
ShouldSerializeVisualTree()

Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà VisualTree nelle istanze di questa classe.

(Ereditato da FrameworkTemplate)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
UnregisterName(String)

Rimuove un mapping nome/oggetto dall'ambito dei nomi XAML.

(Ereditato da FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Verifica che l'elemento padre basato su modelli sia un oggetto ItemsPresenter non Null.

VerifyAccess()

Impone che il thread chiamante abbia accesso a questo DispatcherObject.

(Ereditato da DispatcherObject)

Implementazioni dell'interfaccia esplicita

INameScope.FindName(String)

Restituisce un oggetto con il nome di identificazione specificato.

(Ereditato da FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Esegue una query sull'eventuale disponibilità di una proprietà di ambiente specificata nell'ambito corrente.

(Ereditato da FrameworkTemplate)

Si applica a