Linguaggio

ItemsControl.ItemContainerStyle Proprietà

Definizione

Ottiene o imposta lo stile utilizzato per il rendering dei contenitori di elementi per itemsControl.

public:
 property Style ^ ItemContainerStyle { Style ^ get(); void set(Style ^ value); };
Style ItemContainerStyle();

void ItemContainerStyle(Style value);
public Style ItemContainerStyle { get; set; }
var style = itemsControl.itemContainerStyle;
itemsControl.itemContainerStyle = style;
Public Property ItemContainerStyle As Style
<ItemsControl>
  <ItemsControl.ItemContainerStyle>
    inlineStyle
  </ItemsControl.ItemContainerStyle>
</ItemsControl>
- or -
<ItemsControl ItemContainerStyle="resourceReferenceToStyle"/>

Valore della proprietà

Stile applicato ai contenitori di elementi. Il valore predefinito è Null.

Esempio

In questo esempio viene illustrato come creare un controllo ListView che contiene un elenco di String oggetti. Con l'uso della ItemContainerStyle classe , gli String oggetti hanno il proprio bordo e stile mentre gli ListViewItem oggetti hanno un proprio set di stili e proprietà. Si noti che il tipo di contenitore di elementi in un controllo ListView è un oggetto ListViewItem e quindi viene usato come TargetType dello stile.

 <ListView ItemsSource="{x:Bind tempList}" Height="500">
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="x:String">
            <Border BorderBrush="Crimson" BorderThickness="2" CornerRadius="25" Margin="10">
            <TextBlock Text="{x:Bind}" 
                       FontSize="24" 
                       FontFamily="Arial" 
                       FontWeight="Bold" 
                       Foreground="Crimson" 
                       Margin="10"
                       Padding="5"/>
            </Border>
        </DataTemplate>
    </ListView.ItemTemplate>

    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalAlignment" Value="Right"/>
            <Setter Property="Margin" Value="15"/>
            <Setter Property="BorderBrush" Value="CornflowerBlue"/>
            <Setter Property="BorderThickness" Value="5"/>
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

Il codice precedente produce quanto segue: ItemContainerStyle usato con gli elementi ListView

Come si può notare nell'esempio precedente, gli oggetti dati (stringhe) hanno uno stile personalizzato fornito in un Oggetto DataTemplate : questo stile include il bordo cremisi arrotondato, il colore del carattere cremisi, le dimensioni del carattere e il margine degli elementi esterni.

Ogni elemento generato da ListView (ogni ListViewItem) è allineato orizzontalmente a destra, ha un bordo blu spesso e un margine grande per separarlo dagli altri elementi. Anche se gli oggetti dati all'interno di ListViewItems sono centrati, gli elementi stessi possono essere allineati a destra. Anche se gli oggetti dati (stringhe) hanno solo una piccola quantità di spazio che li separa dagli altri elementi, ogni elemento ListViewItem può essere separato da una grande quantità di spazio.

Queste personalizzazioni vengono eseguite creando uno ListViewItem stile, come illustrato in precedenza. L'elemento style è destinato ListViewItem agli elementi di tipo e verrà applicato a tutti gli elementi di tale tipo all'interno dell'ambito in cui è definito lo stile, in questo caso solo l'oggetto ListView visualizzato. Viene quindi usato un setter per assegnare a ogni proprietà di stile un valore, ovvero impostare su HorizontalAlignmentRight. Queste proprietà e valori influiscono sull'elemento esterno ListViewItem .

In questo esempio viene illustrato come utilizzare la proprietà ItemContainerStyle in un oggetto ItemsControl semplice. Si noti che in questo caso il tipo di contenitore di elementi è contentPresenter.

<ItemsControl>
    <ItemsControl.ItemContainerStyle>
        <Style TargetType="ContentPresenter">
            <Setter Property="FontSize" Value="42" />
        </Style>
    </ItemsControl.ItemContainerStyle>

    <x:String>Hello</x:String>
    <x:String>World</x:String>
</ItemsControl>

Commenti

Le classi derivate di ItemsControl includono Selector e MenuFlyoutPresenter. Le classi derivate da Selector includono ComboBox, FlipView, ListBox e ListViewBase (da cui ListView e GridView sono derivati). Pertanto, la ItemContainerStyle classe può essere usata per modificare lo stile di un ListViewItemoggetto , GridViewIteme così via.

Per ogni elemento di un oggetto ItemsControl, viene usato un elemento contenitore di elementi per visualizzare l'elemento. Per impostazione predefinita, il contenitore di elementi è ContentPresenter. Tuttavia, le sottoclassi di possono eseguire l'override di ItemsControl questo, ad esempio il tipo di contenitore in un controllo ListView è un oggetto ListViewItem. Il valore di ItemContainerStyle viene impostato come proprietà FrameworkElement.Style del contenitore.

ItemContainerStyle può quindi essere usato per modificare lo stile di ogni elemento generato da itemsControl e offre una grande flessibilità e opzioni di personalizzazione in tale area. Anche se molte opzioni di stile sono disponibili all'interno della ItemContainerStyle classe, è più utile quando si tenta di modificare il modo in cui gli elementi contenenti i dati vengono visualizzati in confronto tra loro, modificando la spaziatura, l'allineamento orizzontale e così via. Per modificare la visualizzazione degli oggetti dati stessi, ad esempio il colore di sfondo o le dimensioni del carattere, usare itemTemplate. Per modificare il layout complessivo o l'orientamento degli elementi ItemsControl/i relativi elementi, esaminare la modifica di ItemsPanel.

Si applica a

Vedi anche

  • <xref:Microsoft.UI.Xaml.Controls.ItemsControl.ItemContainerStyleSelector%0a%0aP%3aMicrosoft.UI.Xaml.Controls.ItemsControl.ItemContainerTransitions>