ItemsControl.ItemContainerStyle ItemsControl.ItemContainerStyle ItemsControl.ItemContainerStyle ItemsControl.ItemContainerStyle Property

정의

각 항목에 대해 생성된 컨테이너 요소에 적용되는 Style을 가져오거나 설정합니다.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

속성 값

각 항목에 대해 생성된 컨테이너 요소에 적용되는 Style입니다.The Style that is applied to the container element generated for each item. 기본값은 null입니다.The default is null.

예제

다음 예제에서는이 속성을 사용 하는 방법에 설명 합니다.The following example demonstrates how to use this property. 다음은 데이터 바인딩된 ListBox:Consider the following data-bound ListBox:

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

데이터 항목을 포함 하는 요소에 대 한 스타일을 만들려면을 ListBoxItem 스타일을 다음과 같이 합니다.To create a style for the elements that contain the data items, create a ListBoxItem style, as shown in the following example. 모든 스타일이 ListBoxItem 스타일에 정의 된 범위 내에서 요소입니다.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>

ListBoxItem 에 대 한 컨테이너 요소를 ListBox 컨트롤입니다.The ListBoxItem is the container element for the ListBox control. 따라서 앞의 대 안으로 설정 하는 것을 ItemContainerStyle 의 속성은 ListBox 정의 된 스타일으로 합니다.Therefore, an alternative to the preceding is to set the ItemContainerStyle property of the ListBox to the defined style. 이렇게 하려면 다음을 제공 합니다 ListBoxItem 스타일을 x:Key 리소스로 사용할 수 있도록: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>

다음으로 설정 된 ItemContainerStyle 다음 예제와 같이 리소스에 대 한 속성: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"/>

이전 시나리오의 동일한 결과 생성합니다.Both of the preceding scenarios produce the same result. 그러나 스타일을 리소스로 사용할 수 있도록의 장점 중 하나는 스타일 다시 사용할 수 있습니다.However, one of the advantages of making the style available as a resource is that you can reuse the style. 설정 된 ItemContainerStyle 속성 가독성을 높이기를 명시적으로 제공할 수도 있습니다.Setting the ItemContainerStyle property explicitly can also provide greater readability.

전체 예제를 참조 하세요 스타일 및 템플릿 샘플 소개합니다.For the complete example, see Introduction to Styling and Templating Sample.

다음 예제에서는 다양 한 기능을 설명 하도록 디자인 되어 스타일 및 템플릿 관련 하 여 제공 하는 속성을 ItemsControl입니다.The following example is designed to illustrate the function of the different styling and templating related properties provided by the ItemsControl. 합니다 ItemsControl 이 예제에서 컬렉션에 바인딩된 Task 개체입니다.The ItemsControl in this example is bound to a collection of Task objects. 설명을 위해 이 예제의 스타일 및 템플릿은 모두 인라인으로 선언됩니다.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>

렌더링될 때 예제의 스크린샷은 다음과 같습니다.The following is a screenshot of the example when it is rendered:

ItemsControl 예제 스크린 샷ItemsControl example screenshot

다른 두 스타일 관련 속성을 ItemsControl 다음은 표시 되지 않습니다 하 GroupStyleGroupStyleSelector.Two other style-related properties of the ItemsControl that are not shown here are GroupStyle and GroupStyleSelector.

설명

이 속성을 사용 또는 ItemContainerStyleSelector 데이터 항목을 포함 하는 요소의 모양을 적용할 스타일을 설정 하는 속성입니다.You use this property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. 예를 들어 ListBox, 생성 된 컨테이너는 ListBoxItem 제어;에 대 한 ComboBox, 이들은 ComboBoxItem 컨트롤입니다.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls.

ItemsControl 시각적으로 사용자 지정에 대 한 뛰어난 유연성을 제공 하 고 대부분의 스타일 지정 및 템플릿 속성을 제공 합니다.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. 항목의 레이아웃에 영향을 주는 사용 된 ItemsPanel 속성입니다.To affect the layout of the items, use the ItemsPanel property. 그룹화에 컨트롤을 사용 하는 경우 사용할 수 있습니다 합니다 GroupStyle 또는 GroupStyleSelector 속성입니다.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. 데이터 개체의 시각화를 지정 하려면 사용 합니다 ItemTemplate 또는 ItemTemplateSelector 속성입니다.To specify the visualization of data objects, use the ItemTemplate or ItemTemplateSelector property. 지정 하는 시기에 대 한 자세한 내용은 ItemTemplate를 참조 하세요 데이터 템플릿 개요합니다.For more information about when to specify an ItemTemplate, see Data Templating Overview.

XAML 특성 사용XAML Attribute Usage

<object ItemContainerStyle="ResourceExtension StyleResourceKey"/>  

XAML 값XAML Values

ResourceExtensionResourceExtension
다음 중 하나: StaticResource, 또는 DynamicResource합니다.One of the following: StaticResource, or DynamicResource. 스타일 자체 시스템 리소스 또는 사용자 기본 설정 등의 잠재적인 런타임 참조가 포함 되어 있지 않으면 StaticResource 스타일에 대 한 참조는 일반적으로 성능을 위해 권장 됩니다.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:Key 리소스로 요청 되는 스타일을 참조 하는 문자열 값입니다.x:Key string value referring to the style being requested as a resource.

종속성 속성 정보Dependency Property Information

식별자 필드Identifier field ItemContainerStyleProperty
메타 데이터 속성 설정 trueMetadata properties set to true 없음None

적용 대상

추가 정보