다음을 통해 공유


ItemsControl.ItemsPanel 속성

정의

항목의 레이아웃을 제어하는 패널을 정의하는 템플릿을 가져오거나 설정합니다.

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. ItemsControl 기본값은 StackPanel지정하는 ItemsPanelTemplate.

특성

예제

가로 ListBox만들려면 가로 StackPanel 지정하는 템플릿을 만들고 ItemsPanel 속성으로 설정할 수 있습니다. 다음 예제에서는 가로 ListBox만드는 ListBoxStyle 보여줍니다.

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

다음 예제에서는 ControlTemplate 사용하여 모서리가 둥근 가로 ListBox 만듭니다. 이 예제에서는 이전 예제와 같이 ItemsPanel 속성을 설정하는 대신 가로 StackPanelControlTemplate내에 지정됩니다. IsItemsHost 속성은 StackPaneltrue 설정되며, 이는 생성된 항목이 패널에 있어야 함을 나타냅니다. 이러한 방식으로 지정하면 ControlTemplate사용하지 않고는 ItemsPanel 컨트롤의 사용자로 바꿀 수 없습니다. 따라서 템플릿을 사용하지 않고 패널을 교체하지 않으려는 경우에만 이 작업을 수행합니다.

<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>

또는 다음을 수행하여 동일한 결과를 얻을 수 있습니다. 이 경우 ItemsPresenterItemsPanelTemplate지정된 항목에 따라 항목 레이아웃에 대한 패널을 만듭니다.

<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기본 ItemsPanelTemplateVirtualizingStackPanel지정합니다. MenuItem경우 기본값은 WrapPanel사용합니다. StatusBar경우 기본값은 DockPanel사용합니다.

ItemsControl항목의 레이아웃에 영향을 주려면 이 속성을 사용하여 ItemsPanelTemplate지정합니다.

ItemsControl 시각적 사용자 지정에 뛰어난 유연성을 제공하고 많은 스타일 지정 및 템플릿 속성을 제공합니다. ItemContainerStyle 속성 또는 ItemContainerStyleSelector 속성을 사용하여 데이터 항목을 포함하는 요소의 모양에 영향을 주는 스타일을 설정합니다. 예를 들어 ListBox경우 생성된 컨테이너는 ListBoxItem 컨트롤입니다. ComboBox경우 ComboBoxItem 컨트롤입니다. 컨트롤에서 그룹화 기능을 사용하는 경우 GroupStyle 또는 GroupStyleSelector 속성을 사용할 수 있습니다. 데이터 개체의 시각화를 지정하려면 ItemTemplate 또는 ItemTemplateSelector 속성을 사용합니다. 자세한 내용은 데이터 템플릿 개요참조하세요.

종속성 속성 정보

식별자 필드 ItemsPanelProperty
true 설정된 메타데이터 속성 없음

적용 대상