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

속성 값

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속성은 true 에서 생성 된 StackPanel 항목이 패널에 표시 되도록 나타내는로 설정 됩니다.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

적용 대상