ItemsPanelTemplate Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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) |