ItemsControl.ItemContainerStyle Eigenschap

Definitie

Hiermee haalt u het Style element op dat wordt toegepast op het containerelement dat voor elk item wordt gegenereerd of ingesteld.

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; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemContainerStyle : System.Windows.Style with get, set
Public Property ItemContainerStyle As Style

Waarde van eigenschap

Het Style element dat wordt toegepast op het containerelement dat voor elk item wordt gegenereerd. De standaardwaarde is null.

Kenmerken

Voorbeelden

In het volgende voorbeeld ziet u hoe u deze eigenschap gebruikt. Houd rekening met de volgende gegevens:ListBox

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

Als u een stijl wilt maken voor de elementen die de gegevensitems bevatten, maakt u een ListBoxItem stijl, zoals wordt weergegeven in het volgende voorbeeld. De stijl wordt toegepast op alle ListBoxItem elementen binnen het bereik waarin de stijl is gedefinieerd.

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

Dit ListBoxItem is het containerelement voor het ListBox besturingselement. Daarom is een alternatief voor het voorgaande het instellen van de ItemContainerStyle eigenschap van de ListBox stijl op de gedefinieerde stijl. Hiervoor geeft u de ListBoxItem stijl een x:Key stijl zodat deze beschikbaar is als een 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>

Stel vervolgens de ItemContainerStyle eigenschap in op de resource, zoals in het volgende voorbeeld:

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

In beide voorgaande scenario's wordt hetzelfde resultaat geproduceerd. Een van de voordelen van het beschikbaar maken van de stijl als resource is echter dat u de stijl opnieuw kunt gebruiken. Het instellen van de ItemContainerStyle eigenschap kan ook een grotere leesbaarheid bieden.

Het volgende voorbeeld is ontworpen om de functie te illustreren van de verschillende stijl- en verleidende eigenschappen die worden geleverd door de ItemsControl. Het ItemsControl in dit voorbeeld is gebonden aan een verzameling Task objecten. Voor demonstratiedoeleinden worden de stijlen en sjablonen in dit voorbeeld allemaal inline gedeclareerd.

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

Hier volgt een schermopname van het voorbeeld wanneer het wordt weergegeven:

Voorbeeldschermopname van ItemsControl-voorbeeldschermopname

Twee andere stijlgerelateerde eigenschappen van de ItemsControl die hier niet worden weergegeven, zijn GroupStyle en GroupStyleSelector.

Opmerkingen

U gebruikt deze eigenschap of de ItemContainerStyleSelector eigenschap om een stijl in te stellen die van invloed is op het uiterlijk van de elementen die de gegevensitems bevatten. De gegenereerde containers zijn bijvoorbeeld ListBoxbesturingselementen; voor ListBoxItem, ze zijn ComboBox besturingselementen.ComboBoxItem

Het ItemsControl biedt een grote flexibiliteit voor visuele aanpassing en biedt veel stijl- en verleidende eigenschappen. Als u de indeling van de items wilt beïnvloeden, gebruikt u de ItemsPanel eigenschap. Als u groepering op uw besturingselement gebruikt, kunt u de GroupStyle of GroupStyleSelector eigenschap gebruiken. Als u de visualisatie van gegevensobjecten wilt opgeven, gebruikt u de ItemTemplate of ItemTemplateSelector eigenschap. Zie ItemTemplate voor meer informatie over wanneer u een opgeeft.

XAML-kenmerkgebruik

<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>

XAML-waarden

ResourceExtension Een van de volgende opties: StaticResource, of DynamicResource. Tenzij de stijlen zelf verwijzingen bevatten naar mogelijke runtimeverwijzingen, zoals systeembronnen of gebruikersvoorkeuren, StaticResource wordt verwijzing naar een stijl meestal aanbevolen voor prestaties.

StyleResourceKeyx:Key tekenreekswaarde die verwijst naar de stijl die wordt aangevraagd als een resource.

Informatie over afhankelijkheidseigenschappen

Item Waarde
Id-veld ItemContainerStyleProperty
Eigenschappen van metagegevens ingesteld op true Geen

Van toepassing op

Zie ook