ItemsControl.ItemContainerStyle Eigenschaft

Definition

Ruft den Style ab, der auf das für jedes Element erstellte Containerelement angewendet wird, oder legt diesen fest.Gets or sets the Style that is applied to the container element generated for each item.

public:
 property System::Windows::Style ^ ItemContainerStyle { System::Windows::Style ^ get(); void set(System::Windows::Style ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.Style ItemContainerStyle { get; set; }
member this.ItemContainerStyle : System.Windows.Style with get, set
Public Property ItemContainerStyle As Style

Eigenschaftswert

Der Style, der auf das für jedes Element erstellte Containerelement angewendet wird.The Style that is applied to the container element generated for each item. Die Standardeinstellung ist null.The default is null.

Attribute

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie diese Eigenschaft verwendet wird.The following example demonstrates how to use this property. Beachten Sie Folgendes ListBox:Consider the following data-bound ListBox:

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

Um einen Stil für die Elemente zu erstellen, die die Datenelemente enthalten, ListBoxItem erstellen Sie wie im folgenden Beispiel gezeigt einen Stil.To create a style for the elements that contain the data items, create a ListBoxItem style, as shown in the following example. Der Stil wird auf alle ListBoxItem Elemente innerhalb des Bereichs angewendet, in dem der Stil definiert ist.The style is applied to all ListBoxItem elements within the scope the style is defined in.

<Style TargetType="ListBoxItem">
  <Setter Property="Opacity" Value="0.5" />
  <Setter Property="MaxHeight" Value="75" />
  <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
      <Trigger.Setters>
        <Setter Property="Opacity" Value="1.0" />
      </Trigger.Setters>
    </Trigger>
    <EventTrigger RoutedEvent="Mouse.MouseEnter">
      <EventTrigger.Actions>
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation
              Duration="0:0:0.2"
              Storyboard.TargetProperty="MaxHeight"
              To="90"  />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
    <EventTrigger RoutedEvent="Mouse.MouseLeave">
      <EventTrigger.Actions>
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation
              Duration="0:0:1"
              Storyboard.TargetProperty="MaxHeight"  />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
    </EventTrigger>
  </Style.Triggers>
</Style>

Das ListBoxItem ist das Containerelement für das ListBox -Steuerelement.The ListBoxItem is the container element for the ListBox control. Daher besteht eine Alternative zum vorhergehenden darin, die ItemContainerStyle -Eigenschaft ListBox von auf den definierten Stil festzulegen.Therefore, an alternative to the preceding is to set the ItemContainerStyle property of the ListBox to the defined style. Zu diesem Zweck müssen Sie dem ListBoxItem Stil einen x:Key als Ressource zur Verfügung stellen:To do that, give the ListBoxItem style an x:Key so it is available as a resource:

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

Legen Sie als nächstes ItemContainerStyle die-Eigenschaft auf die Ressource fest, wie im folgenden Beispiel gezeigt:Next, set the ItemContainerStyle property to the resource, as in the following example:

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

Beide vorangehenden Szenarien führen zu demselben Ergebnis.Both of the preceding scenarios produce the same result. Einer der Vorteile, wenn der Stil als Ressource verfügbar gemacht wird, besteht darin, dass Sie den Stil wieder verwenden können.However, one of the advantages of making the style available as a resource is that you can reuse the style. Das explizite ItemContainerStyle Festlegen der-Eigenschaft kann auch eine bessere Lesbarkeit bereitstellen.Setting the ItemContainerStyle property explicitly can also provide greater readability.

Das komplette Beispiel finden Sie unter Einführung indas Erstellen von Formaten und Vorlagen.For the complete example, see Introduction to Styling and Templating Sample.

Im folgenden Beispiel wird die Funktion der verschiedenen Formatierungs-und Vorlagen bezogenen Eigenschaften veranschaulicht, die von ItemsControlbereitgestellt werden.The following example is designed to illustrate the function of the different styling and templating related properties provided by the ItemsControl. Der ItemsControl in diesem Beispiel ist an eine Auflistung von Task -Objekten gebunden.The ItemsControl in this example is bound to a collection of Task objects. Zu Demonstrationszwecken werden die Formate und die Vorlagen in diesem Beispiel inline deklariert.For demonstration purposes, the styles and templates in this example are all declared inline.

<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 sehen Sie ein Bildschirmfoto des Beispiels nach dem Rendern:The following is a screenshot of the example when it is rendered:

![Bildschirm Abbildung von ItemsControl-Beispielen] (~/add/media/databinding-itemscontrolproperties.png "Bildschirm Abbildung von ItemsControl-Beispielen")ItemsControl example screenshot

Zwei weitere Stil bezogene Eigenschaften von, die ItemsControl hier nicht angezeigt werden, sind GroupStyle und GroupStyleSelector.Two other style-related properties of the ItemsControl that are not shown here are GroupStyle and GroupStyleSelector.

Hinweise

Sie verwenden diese Eigenschaft oder die ItemContainerStyleSelector -Eigenschaft, um einen Stil festzulegen, der die Darstellung der Elemente beeinflusst, die die Datenelemente enthalten.You use this property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Beispielsweise ListBoxsind ListBoxItem die generierten Container-Steuerelemente ComboBoxfür die-Steuerelemente, ComboBoxItem und sind-Steuerelemente.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls.

Bietet ItemsControl eine hohe Flexibilität bei der visuellen Anpassung und bietet viele Formatierungs-und Vorlagen Eigenschaften.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Verwenden Sie die ItemsPanel -Eigenschaft, um das Layout der Elemente zu beeinflussen.To affect the layout of the items, use the ItemsPanel property. Wenn Sie die Gruppierung für das-Steuerelement verwenden, können Sie GroupStyle die GroupStyleSelector -Eigenschaft oder die-Eigenschaft verwenden.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. Um die Visualisierung von Datenobjekten anzugeben, verwenden Sie ItemTemplate die ItemTemplateSelector -Eigenschaft oder die-Eigenschaft.To specify the visualization of data objects, use the ItemTemplate or ItemTemplateSelector property. Weitere Informationen zum Zeitpunkt der Angabe eines ItemTemplatefinden Sie unter Übersicht über DatenVorlagen.For more information about when to specify an ItemTemplate, see Data Templating Overview.

Verwendung von XAML-AttributenXAML Attribute Usage

<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>  

XAML-WerteXAML Values

ResourceExtensionResourceExtension
Eines der folgenden: StaticResource, oder. DynamicResourceOne of the following: StaticResource, or DynamicResource. Wenn die Stile selbst keine Verweise auf potenzielle Lauf Zeit Verweise enthalten, wie z. b. Systemressourcen StaticResource oder Benutzereinstellungen, wird in der Regel ein Verweis auf einen Stil für die Leistung empfohlen.Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource reference to a style is usually recommended for performance.

StyleResourceKeyStyleResourceKey
x:Keyein Zeichen folgen Wert, der auf den Stil verweist, der als Ressource angefordert wird.x:Key string value referring to the style being requested as a resource.

Informationen zur AbhängigkeitseigenschaftDependency Property Information

BezeichnerfeldIdentifier field ItemContainerStyleProperty
Metadateneigenschaften auf true festgelegtMetadata properties set to true KeineNone

Gilt für:

Siehe auch