ItemsPanelTemplate Classe

Definizione

Specifica il pannello creato dall'oggetto ItemsPresenter per il layout degli elementi di un controllo 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 oggetto orizzontale, è possibile creare un modello che specifica un oggetto orizzontale ListBoxStackPanel e impostarlo come ItemsPanel proprietà. Nell'esempio seguente viene illustrato un oggetto ListBox Style che crea un oggetto orizzontale ListBox.

<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 usato un oggetto ControlTemplate per creare un angolo orizzontale ListBox con angoli arrotondati. Si noti che in questo esempio, anziché impostare la proprietà come nell'esempio precedente, l'orizzontale ItemsPanel StackPanel viene specificato all'interno di ControlTemplate. Si noti che la IsItemsHost proprietà è impostata su true su StackPanel, che indica che gli elementi generati devono essere inseriti nel pannello. Quando lo si specifica in questo modo, non ItemsPanel è possibile sostituire l'utente del controllo senza usare un ControlTemplateoggetto . 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 pannello crea il pannello per il layout degli elementi in base a quanto specificato dall'oggetto 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 stile e templating in ItemsControl, vedere Panoramica del templating dei dati.

Commenti

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

Ogni ItemsControl tipo ha un valore predefinito ItemsPanelTemplate. Per la ItemsControl classe, il valore predefinito ItemsPanel è un ItemsPanelTemplate oggetto che specifica un StackPaneloggetto . ListBoxPer , il valore predefinito usa .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 l'oggetto Dispatcher associato a DispatcherObject.

(Ereditato da DispatcherObject)
HasContent

Ottiene un valore che indica se il contenuto di questo modello è stato ottimizzato.

(Ereditato da FrameworkTemplate)
IsSealed

Ottiene un valore che indica se questo oggetto è in uno stato immutabile e pertanto non può essere modificato.

(Ereditato da FrameworkTemplate)
Resources

Ottiene o imposta l'insieme di risorse che possono essere utilizzate all'interno dell'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 è 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 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 del modello.

(Ereditato da FrameworkTemplate)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto 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 dell'oggetto Object corrente.

(Ereditato da Object)
RegisterName(String, Object)

Registra una nuova coppia nome/oggetto nel namescope corrente.

(Ereditato da FrameworkTemplate)
Seal()

Blocca il modello affinché 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 sulle 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 sulle 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 dal NameScope XAML.

(Ereditato da FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Controlla che il padre basato su modelli è un oggetto ItemsPresenter diverso da null.

VerifyAccess()

Impone che il thread chiamante abbia accesso a DispatcherObject.

(Ereditato da DispatcherObject)

Implementazioni dell'interfaccia esplicita

INameScope.FindName(String)

Restituisce un oggetto con il nome identificativo specificato.

(Ereditato da FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Esegue una query per determinare se una proprietà di ambiente specificata è disponibile nell'ambito corrente.

(Ereditato da FrameworkTemplate)

Si applica a