ItemsControl.ItemsPanel 속성

정의

항목의 레이아웃을 제어하는 패널을 정의하는 템플릿을 가져오거나 설정합니다.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 속성을 설정 하는 대신 ControlTemplate내에 가로 StackPanel 지정 합니다.In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. IsItemsHost 속성이 StackPanel에서 true로 설정 되어 생성 된 항목이 패널에 표시 됩니다.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

적용 대상

추가 정보