Share via


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à

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, è possibile creare un modello che specifica un oggetto orizzontale ListBoxStackPanel e impostarlo come ItemsPanel proprietà. Nell'esempio seguente viene illustrato un oggetto ListBoxStyle 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. In questo esempio, anziché impostare la ItemsPanel proprietà come nell'esempio precedente, l'orizzontale StackPanel viene specificato all'interno di ControlTemplate. 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>

Commenti

Per , l'impostazione ListBoxpredefinita 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 ItemsPanelTemplateoggetto .

Offre ItemsControl una grande flessibilità per la personalizzazione visiva e offre molti stili e proprietà di templating. Si usa la proprietà o la ItemContainerStyleItemContainerStyleSelector 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 usare la GroupStyle proprietà o GroupStyleSelector . Per specificare la visualizzazione degli oggetti dati, usare la ItemTemplateItemTemplateSelector proprietà o . Per altre informazioni, vedere Panoramica del templating dei dati.

Informazioni proprietà di dipendenza

Campo Identificatore ItemsPanelProperty
Proprietà dei metadati impostate su true Nessuno

Si applica a