Sprache

ItemsControl.ItemContainerStyle Eigenschaft

Definition

Dient zum Abrufen oder Festlegen der Formatvorlage, die beim Rendern der Elementcontainer für ein ItemsControl-Objekt verwendet wird.

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"/>

Eigenschaftswert

Die Formatvorlage, die auf die Elementcontainer angewendet wird. Der Standardwert ist NULL.

Beispiele

In diesem Beispiel wird veranschaulicht, wie Sie eine ListView erstellen, die eine Liste von String Objekten enthält. Bei Verwendung der ItemContainerStyle Klasse verfügen die String Objekte über einen eigenen Rahmen und eine eigene Formatierung, während die ListViewItem Objekte über einen eigenen Satz von Formatvorlagen und Eigenschaften verfügen. Beachten Sie, dass der Elementcontainertyp in einer ListView ein ListViewItem-Element ist und daher als TargetType der Formatvorlage verwendet wird.

 <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>

Der obige Code erzeugt Folgendes: ItemContainerStyle wird mit ListView-Elementen verwendet.

Wie Sie im obigen Beispiel sehen können, verfügen die Datenobjekte (Zeichenfolgen) über ein eigenes Format in einer DataTemplate - diese Formatierung enthält ihren abgerundeten Crimsonrahmen, ihre Crimsonschriftfarbe, den Schriftgrad und den Rand von äußeren Elementen.

Jedes element, das von ( ListView jeder ListViewItem) generiert wird, wird horizontal rechts ausgerichtet, hat einen dicken blauen Rahmen und einen großen Rand, um es von den anderen Elementen zu trennen. Obwohl die Datenobjekte innerhalb der ListViewItems zentriert sind, können die Elemente selbst rechtsbündig ausgerichtet werden. Und obwohl die Datenobjekte (Zeichenfolgen) nur einen kleinen Abstand haben, der sie von anderen Elementen trennt, kann jedes ListViewItem-Element durch einen großen Speicherplatz getrennt werden.

Diese Anpassungen werden durchgeführt, indem sie eine ListViewItem Formatvorlage erstellen, wie oben gezeigt. Das Style-Element zielt auf Typelemente ab ListViewItem und wird auf alle Elemente dieses Typs innerhalb des Bereichs angewendet, in dem die Formatvorlage definiert ist – in diesem Fall nur die ListView angezeigte. Ein Setter wird dann verwendet, um jeder Stileigenschaft einen Wert zu geben , d. h. legen Sie den HorizontalAlignment Wert auf Right. Diese Eigenschaften und Werte wirken sich auf das äußere ListViewItem Element aus.

In diesem Beispiel wird die Verwendung der ItemContainerStyle-Eigenschaft für ein einfaches ItemsControl-Objekt veranschaulicht. Beachten Sie, dass in diesem Fall der Elementcontainertyp ein ContentPresenter ist.

<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>

Hinweise

Abgeleitete Klassen von ItemsControl Include Selector und MenuFlyoutPresenter. Abgeleitete Klassen von Selector umfassen ComboBox, FlipView, ListBox und ListViewBase (von denen ListView und GridView abgeleitet werden). Daher kann die ItemContainerStyle Klasse verwendet werden, um den Stil eines ListViewItem, GridViewItemusw. zu bearbeiten.

Für jedes Element in einem ItemsControlElement wird ein Elementcontainerelement verwendet, um das Element anzuzeigen. Standardmäßig ist der Elementcontainer ein ContentPresenter. Aber Unterklassen von können dies überschreiben, z. B. der Containertyp in einer ListView ist ein ListViewItem.But subclasses of ItemsControl can override this, for example the container type in a ListViewItem. Der Wert des ItemContainerStyle Objekts wird als FrameworkElement.Style-Eigenschaft des Containers festgelegt.

ItemContainerStyle kann dann verwendet werden, um die Formatvorlage jedes Elements zu ändern, das von einem ItemsControl-Element generiert wird, und bietet viele Flexibilitäts- und Anpassungsoptionen in diesem Bereich. Obwohl viele Formatierungsoptionen in der ItemContainerStyle Klasse verfügbar sind, ist es am nützlichsten, wenn Sie versuchen, zu bearbeiten, wie die Elemente, die die Daten enthalten, im Vergleich zueinander angezeigt werden - ändern sie ihren Abstand, ihre horizontale Ausrichtung usw. Wenn Sie die Visualisierung der Datenobjekte selbst ändern möchten, z. B. deren Hintergrundfarbe oder Schriftgrad, verwenden Sie eine ItemTemplate.To change the visualization of the data objects selbst, such as their background color or font-size, use an ItemTemplate. Wenn Sie das allgemeine Layout oder die Ausrichtung Ihrer ItemsControl/zugehörigen Elemente ändern möchten, überprüfen Sie die Bearbeitung des ItemsPanel-Elements.

Gilt für:

Weitere Informationen

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