ItemsControl.ItemContainerStyle Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger Style det som tillämpas på containerelementet som genereras för varje objekt.
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
Egenskapsvärde
Det Style som tillämpas på containerelementet som genereras för varje objekt. Standardvärdet är null.
- Attribut
Exempel
I följande exempel visas hur du använder den här egenskapen. Överväg följande databundna ListBox:
<ListBox ItemsSource="{Binding Source={StaticResource MyPhotos}}"
Background="Silver" Width="600" Margin="10" SelectedIndex="0"/>
Om du vill skapa ett format för elementen som innehåller dataobjekten skapar du ett ListBoxItem format, som du ser i följande exempel. Formatet tillämpas på alla ListBoxItem element i omfånget som formatet definieras i.
<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>
ListBoxItem är containerelementet för ListBox kontrollen. Ett alternativ till föregående är därför att ange ItemContainerStyle egenskapen för det ListBox definierade formatet. Det gör du genom att ge formatmallen ListBoxItem en x:Key så att den är tillgänglig som en resurs:
<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>
Ställ sedan in egenskapen ItemContainerStyle på resursen, som i följande exempel:
<ListBox ItemsSource="{Binding Source={StaticResource MyPhotos}}"
ItemContainerStyle="{StaticResource ContainerStyle}"
Background="Silver" Width="600" Margin="10" SelectedIndex="0"/>
Båda föregående scenarier ger samma resultat. En av fördelarna med att göra formatet tillgängligt som en resurs är dock att du kan återanvända formatet. ItemContainerStyle Att ange egenskapen explicit kan också ge bättre läsbarhet.
Följande exempel är utformat för att illustrera funktionen för de olika formaterings- och mallrelaterade egenskaperna som tillhandahålls av ItemsControl. I ItemsControl det här exemplet är bundet till en samling Task objekt. I demonstrationssyfte deklareras alla formatmallar och mallar i det här exemplet 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 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>
Följande är en skärmbild av exemplet när det visas:
Två andra stilrelaterade egenskaper för de ItemsControl som inte visas här är GroupStyle och GroupStyleSelector.
Kommentarer
Du använder den ItemContainerStyleSelector här egenskapen eller egenskapen för att ange ett format som påverkar utseendet på de element som innehåller dataobjekten. För är ListBox till exempel ListBoxItemde genererade containrarna kontroller. För ComboBox, är ComboBoxItem de kontroller.
Ger ItemsControl stor flexibilitet för visuell anpassning och ger många formaterings- och mallegenskaper. Använd egenskapen för att påverka layouten för objekten ItemsPanel . Om du använder gruppering på din kontroll kan du använda GroupStyle egenskapen eller GroupStyleSelector . Om du vill ange visualisering av dataobjekt använder du ItemTemplate egenskapen eller ItemTemplateSelector . Mer information om när du ska ange en ItemTemplatefinns i Översikt över dataöversikt.
XAML-attributanvändning
<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>
XAML-värden
ResourceExtension Något av följande: StaticResource, eller DynamicResource. Om inte själva formatmallarna innehåller referenser till potentiella körningsreferenser, till exempel systemresurser eller användarinställningar, StaticResource rekommenderas vanligtvis en referens till ett format för prestanda.
StyleResourceKeyx:Key strängvärde som refererar till formatmallen som begärs som en resurs.
Information om beroendeegenskap
| Objekt | Value |
|---|---|
| Identifierarfält | ItemContainerStyleProperty |
Metadataegenskaper inställda på true |
Ingen |