ItemsControl.ItemsPanel Proprietà

Definizione

Ottiene o imposta il modello che definisce il pannello che controlla il layout di elementi.

public:
 property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
[<System.ComponentModel.Bindable(false)>]
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate

Valore della proprietà

ItemsPanelTemplate

Oggetto ItemsPanelTemplate che definisce il pannello da usare per il layout degli elementi. Il valore predefinito per l'oggetto ItemsControl è un oggetto ItemsPanelTemplate che specifica un oggetto StackPanel.

Attributi

Esempio

Per creare un oggetto orizzontale ListBox, è possibile creare un modello che specifica un oggetto orizzontale StackPanel e impostarlo come ItemsPanel proprietà . Nell'esempio seguente viene illustrato un ListBox Style oggetto 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 utilizzato un oggetto ControlTemplate per creare un oggetto orizzontale ListBox con angoli arrotondati. In questo esempio, anziché impostare la ItemsPanel proprietà come nell'esempio precedente, l'oggetto orizzontale StackPanel viene specificato all'interno di ControlTemplate. La IsItemsHost proprietà è impostata su true in StackPanel, che indica che gli elementi generati devono essere inseriti nel pannello. Quando viene specificato in questo modo, l'oggetto ItemsPanel non può essere sostituito dall'utente del controllo senza utilizzare un oggetto 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, crea ItemsPresenter il pannello per il layout degli elementi in base a quanto specificato da 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>

Commenti

ListBoxPer , il valore predefinito ItemsPanelTemplate specifica .VirtualizingStackPanel Per MenuItem, il valore predefinito usa WrapPanel. Per StatusBar, il valore predefinito usa DockPanel.

Per influire sul layout degli elementi in un ItemsControloggetto , utilizzare questa proprietà per specificare un oggetto ItemsPanelTemplate.

Offre ItemsControl una grande flessibilità per la personalizzazione visiva e offre molti stili e proprietà di creazione di modelli. Utilizzare la ItemContainerStyle proprietà o la ItemContainerStyleSelector proprietà per impostare uno stile per influire sull'aspetto degli elementi che contengono gli elementi di dati. Ad esempio, per ListBox, i contenitori generati sono ListBoxItem controlli; per ComboBox, sono ComboBoxItem controlli. Se si usa il raggruppamento sul controllo, è possibile utilizzare la GroupStyle proprietà o GroupStyleSelector . Per specificare la visualizzazione degli oggetti dati, utilizzare la ItemTemplate proprietà o ItemTemplateSelector . Per altre informazioni, vedere Cenni preliminari sulla creazione di modelli di dati.

Informazioni proprietà di dipendenza

Campo Identificatore ItemsPanelProperty
Proprietà dei metadati impostate su true Nessuno

Si applica a

Vedi anche