Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

ItemsControl.ItemContainerStyle-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft den Style ab, der auf das für jedes Element erstellte Containerelement angewendet wird, oder legt diesen fest.

Namespace:   System.Windows.Controls
Assembly:  PresentationFramework (in PresentationFramework.dll)

[BindableAttribute(true)]
public Style ItemContainerStyle { get; set; }

Eigenschaftswert

Type: System.Windows.Style

Der Style, der auf das für jedes Element erstellte Containerelement angewendet wird. Die Standardwert ist null.

Verwenden Sie diese Eigenschaft oder die ItemContainerStyleSelector Eigenschaft, um ein Format festzulegen, die die Darstellung der Elemente angibt, die Datenelemente enthalten. Z. B. für ListBox, sind die generierten Container ListBoxItem steuert; für ComboBox, sie sind ComboBoxItem Steuerelemente.

Die ItemsControl bietet eine umfassende Flexibilität bei der visuellen Anpassung und stellt eine Vielzahl von Formaten und Vorlagen bereit. Um das Layout der Elemente zu beeinflussen, verwenden Sie die ItemsPanel Eigenschaft. Wenn Sie die Gruppierung für das Steuerelement verwenden, können Sie mithilfe der GroupStyle oder GroupStyleSelector Eigenschaft. Um die Visualisierung von Datenobjekten anzugeben, verwenden Sie die ItemTemplate oder ItemTemplateSelector Eigenschaft. Weitere Informationen zum Angeben einer ItemTemplate, finden Sie unter Übersicht über Datenvorlagen.

<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>

ResourceExtension

Einer der folgenden: StaticResource, oder DynamicResource. Wenn die Formate sich Verweise auf potenzielle Laufzeitverweise wie Systemressourcen oder Benutzervoreinstellungen, enthalten StaticResource Verweis auf ein Format wird in der Regel aus Leistungsgründen empfohlen.

StyleResourceKey

x:Key String-Wert, die Verweise auf den Stil, die als Ressource angefordert wird.

Feld-ID

ItemContainerStyleProperty

Festgelegte Metadateneigenschaften true

NONE

Im folgenden Beispiel wird veranschaulicht, wie diese Eigenschaft verwendet wird. Berücksichtigen Sie die folgenden datengebundenen ListBox:

Erstellen Sie zum Erstellen eines Stils für die Elemente, die die Daten enthalten ein ListBoxItem Format, wie im folgenden Beispiel gezeigt. Der Stil angewendet wird, um alle ListBoxItem Elemente innerhalb des Bereichs, der das Format definiert ist.

Die ListBoxItem ist das Containerelement für die ListBox Steuerelement. Daher ist eine Alternative zum vorangehenden Festlegen der ItemContainerStyle Eigenschaft der ListBox auf das definierte Format. Geben Sie dazu die ListBoxItem Stil ein x:Key damit es als Ressource verfügbar ist:

<Style TargetType="ListBoxItem" x:Key="ContainerStyle">
  <Setter Property="Opacity" Value="0.5" />
  <Setter Property="Opacity" Value="0.5" />
  <Setter Property="MaxHeight" Value="75" />
  <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
      <Setter Property="Opacity" Value="1.0" />
    </Trigger>
  </Style.Triggers>
</Style>

Legen Sie als Nächstes die ItemContainerStyle Eigenschaft auf die Ressource, wie im folgenden Beispiel:

<ListBox ItemsSource="{Binding Source={StaticResource MyPhotos}}"
         ItemContainerStyle="{StaticResource ContainerStyle}" 
         Background="Silver" Width="600" Margin="10" SelectedIndex="0"/>

Beide der oben beschriebenen Szenarien führen zum gleiche Ergebnis. Einer der Vorteile von Verfügbarmachen des Formats als Ressource ist jedoch, dass Sie das Format wiederverwenden können. Festlegen der ItemContainerStyle Eigenschaft explizit kann auch eine bessere Lesbarkeit bieten.

Das vollständige Beispiel finden Sie unter Introduction to Styling and Templating Sample.

Im folgende Beispiel soll veranschaulichen Sie die Funktion der verschiedenen Formaten und Vorlagen im Zusammenhang bereitgestellten Eigenschaften der ItemsControl. Die ItemsControl in diesem Beispiel ist an eine Auflistung von gebunden Task Objekte. Zur Veranschaulichung können Zwecke, die Stile und Vorlagen in diesem Beispiel Inline deklariert.

<ItemsControl Margin="10"
              ItemsSource="{Binding Source={StaticResource myTodoList}}">
  <!--The ItemsControl has no default visual appearance.
      Use the Template property to specify a ControlTemplate to define
      the appearance of an ItemsControl. The ItemsPresenter uses the specified
      ItemsPanelTemplate (see below) to layout the items. If an
      ItemsPanelTemplate is not specified, the default is used. (For ItemsControl,
      the default is an ItemsPanelTemplate that specifies a StackPanel.-->
  <ItemsControl.Template>
    <ControlTemplate TargetType="ItemsControl">
      <Border BorderBrush="Aqua" BorderThickness="1" CornerRadius="15">
        <ItemsPresenter/>
      </Border>
    </ControlTemplate>
  </ItemsControl.Template>
  <!--Use the ItemsPanel property to specify an ItemsPanelTemplate
      that defines the panel that is used to hold the generated items.
      In other words, use this property if you want to affect
      how the items are laid out.-->
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <!--Use the ItemTemplate to set a DataTemplate to define
      the visualization of the data objects. This DataTemplate
      specifies that each data object appears with the Proriity
      and TaskName on top of a silver ellipse.-->
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <DataTemplate.Resources>
        <Style TargetType="TextBlock">
          <Setter Property="FontSize" Value="18"/>
          <Setter Property="HorizontalAlignment" Value="Center"/>
        </Style>
      </DataTemplate.Resources>
      <Grid>
        <Ellipse Fill="Silver"/>
        <StackPanel>
          <TextBlock Margin="3,3,3,0"
                     Text="{Binding Path=Priority}"/>
          <TextBlock Margin="3,0,3,7"
                     Text="{Binding Path=TaskName}"/>
        </StackPanel>
      </Grid>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
  <!--Use the ItemContainerStyle property to specify the appearance
      of the element that contains the data. This ItemContainerStyle
      gives each item container a margin and a width. There is also
      a trigger that sets a tooltip that shows the description of
      the data object when the mouse hovers over the item container.-->
  <ItemsControl.ItemContainerStyle>
    <Style>
      <Setter Property="Control.Width" Value="100"/>
      <Setter Property="Control.Margin" Value="5"/>
      <Style.Triggers>
        <Trigger Property="Control.IsMouseOver" Value="True">
          <Setter Property="Control.ToolTip"
                  Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                          Path=Content.Description}"/>
        </Trigger>
      </Style.Triggers>
    </Style>
  </ItemsControl.ItemContainerStyle>
</ItemsControl>

Im folgenden wird ein Screenshot des Beispiels, beim Rendern:

Bildschirmabbildung für ein ItemsControl-Beispiel

Zwei weitere Formatvorlagen bezogenen Eigenschaften für die ItemsControl werden nicht angezeigt, hier sind GroupStyle und GroupStyleSelector.

.NET Framework
Verfügbar seit 3.0
Zurück zum Anfang
Anzeigen: