ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel Property

정의

항목의 레이아웃을 제어하는 패널을 정의하는 템플릿을 가져오거나 설정합니다.Gets or sets the template that defines the panel that controls the layout of items.

public:
 property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate

속성 값

항목 레이아웃에 사용할 패널을 정의하는 ItemsPanelTemplate입니다.An ItemsPanelTemplate that defines the panel to use for the layout of the items. ItemsControl의 기본값은 ItemsPanelTemplate을 지정하는 StackPanel입니다.The default value for the ItemsControl is an ItemsPanelTemplate that specifies a StackPanel.

예제

가로 만들려는 ListBox, 가로 지정 하는 템플릿을 만들 수 있습니다 StackPanel 으로 설정 하는 ItemsPanel 속성입니다.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. 에서는 다음 예제는 ListBox Style 만들어지는 가로 ListBox합니다.The following example shows a ListBox Style that creates a horizontal ListBox.

<Style TargetType="ListBox">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
</Style>

다음 예제에서는 ControlTemplate 가로 만들려면 ListBox 모서리가 둥근입니다.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. 설정 하는 대신이 예제에서는 합니다 ItemsPanel 이전 예제와 같이, 가로 StackPanel 내에서 지정 된는 ControlTemplate합니다.In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. IsItemsHost 속성이로 설정 되어 trueStackPanel를 나타내는 생성된 된 항목 패널에서 이동 해야 하는 합니다.The IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. 이러한 방식으로 지정 하는 경우는 ItemsPanel 를 사용 하지 않고 컨트롤의 사용자가 바꿀 수 없습니다는 ControlTemplate합니다.When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. 따라서만 수행이 패널 템플릿 사용 하지 않고 교체 하려고 하지 않는 것이 알고 있는 경우.Therefore, only do this if you know you would not want the panel to be replaced without the use of a template.

<Style TargetType="ListBox">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="ListBox">
        <Border CornerRadius="5" Background="{TemplateBinding ListBox.Background}">
          <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <StackPanel Orientation="Horizontal"
                       VerticalAlignment="Center"
                       HorizontalAlignment="Center"
                       IsItemsHost="True"/>
          </ScrollViewer>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

또는 동일한 결과 얻으려면 다음을 수행할 수 있습니다.Alternatively, you can do the following to achieve the same results. 이 경우에 ItemsPresenter 된 내용에 따라 항목의 레이아웃에 대 한 패널을 만드는 ItemsPanelTemplate합니다.In this case, the ItemsPresenter creates the panel for the layout of the items based on what is specified by the ItemsPanelTemplate.

<Style TargetType="{x:Type ListBox}">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                     VerticalAlignment="Center"
                     HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type ListBox}">
        <Border CornerRadius="5"
                Background="{TemplateBinding ListBox.Background}">
          <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <ItemsPresenter/>
          </ScrollViewer>
        </Border>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

설명

에 대 한 합니다 ListBox, 기본값 ItemsPanelTemplate 지정을 VirtualizingStackPanel입니다.For the ListBox, the default ItemsPanelTemplate specifies the VirtualizingStackPanel. 에 대 한 MenuItem를 사용 하 여 기본 WrapPanel입니다.For MenuItem, the default uses WrapPanel. 에 대 한 StatusBar를 사용 하 여 기본 DockPanel입니다.For StatusBar, the default uses DockPanel.

에 있는 항목의 레이아웃에 영향을 ItemsControl를 지정 하려면이 속성을 사용 하면를 ItemsPanelTemplate합니다.To affect the layout of the items in an ItemsControl, you use this property to specify a ItemsPanelTemplate.

ItemsControl 시각적으로 사용자 지정에 대 한 뛰어난 유연성을 제공 하 고 대부분의 스타일 지정 및 템플릿 속성을 제공 합니다.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. 사용 된 ItemContainerStyle 속성 또는 ItemContainerStyleSelector 데이터 항목을 포함 하는 요소의 모양을 적용할 스타일을 설정 하는 속성입니다.You use the ItemContainerStyle 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. 그룹화에 컨트롤을 사용 하는 경우 사용할 수 있습니다 합니다 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 the data objects, use the ItemTemplate or the ItemTemplateSelector property. 자세한 내용은 데이터 템플릿 개요를 참조하세요.For more information, see Data Templating Overview.

종속성 속성 정보Dependency Property Information

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

적용 대상

추가 정보