다음을 통해 공유


ItemsPanelTemplate 클래스

정의

ItemsControl항목의 레이아웃에 대해 ItemsPresenter 만드는 패널을 지정합니다.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
상속

예제

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

ItemsControl다양한 스타일 지정 및 템플릿 속성을 사용하는 방법에 대한 예제는 데이터 템플릿 개요참조하세요.

설명

ItemsPanelTemplate 항목의 레이아웃에 사용되는 패널을 지정합니다. GroupStyle ItemsPanelTemplate형식인 Panel 속성이 있습니다. ItemsControl 형식에는 ItemsPanelTemplate형식인 ItemsPanel 속성이 있습니다.

ItemsControl 형식에는 기본 ItemsPanelTemplate있습니다. ItemsControl 클래스의 경우 기본 ItemsPanel 값은 StackPanel지정하는 ItemsPanelTemplate. ListBox경우 기본값은 VirtualizingStackPanel사용합니다. MenuItem경우 기본값은 WrapPanel사용합니다. StatusBar경우 기본값은 DockPanel사용합니다.

생성자

ItemsPanelTemplate()

ItemsPanelTemplate 클래스의 인스턴스를 초기화합니다.

ItemsPanelTemplate(FrameworkElementFactory)

지정된 템플릿을 사용하여 ItemsPanelTemplate 클래스의 인스턴스를 초기화합니다.

속성

Dispatcher

DispatcherObject 연결된 Dispatcher 가져옵니다.

(다음에서 상속됨 DispatcherObject)
HasContent

이 템플릿에 최적화된 콘텐츠가 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 FrameworkTemplate)
IsSealed

이 개체를 변경할 수 없도록 변경할 수 없는 상태인지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 FrameworkTemplate)
Resources

이 템플릿의 범위 내에서 사용할 수 있는 리소스 컬렉션을 가져오거나 설정합니다.

(다음에서 상속됨 FrameworkTemplate)
Template

작성자가 템플릿을 정의하거나 적용할 때 템플릿에 대한 XAML 노드를 기록하거나 재생하는 개체에 대한 참조를 가져오거나 설정합니다.

(다음에서 상속됨 FrameworkTemplate)
VisualTree

템플릿의 루트 노드를 가져오거나 설정합니다.

(다음에서 상속됨 FrameworkTemplate)

메서드

CheckAccess()

호출 스레드가 이 DispatcherObject액세스할 수 있는지 여부를 확인합니다.

(다음에서 상속됨 DispatcherObject)
Equals(Object)

지정된 개체가 현재 개체와 같은지 여부를 확인합니다.

(다음에서 상속됨 Object)
FindName(String, FrameworkElement)

이 템플릿 내에 정의된 지정된 이름과 연결된 요소를 찾습니다.

(다음에서 상속됨 FrameworkTemplate)
GetHashCode()

기본 해시 함수로 사용됩니다.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type 가져옵니다.

(다음에서 상속됨 Object)
LoadContent()

템플릿의 콘텐츠를 개체의 인스턴스로 로드하고 콘텐츠의 루트 요소를 반환합니다.

(다음에서 상속됨 FrameworkTemplate)
MemberwiseClone()

현재 Object단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
RegisterName(String, Object)

새 이름/개체 쌍을 현재 이름 범위에 등록합니다.

(다음에서 상속됨 FrameworkTemplate)
Seal()

템플릿을 변경할 수 없도록 잠깁니다.

(다음에서 상속됨 FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

serialization 프로세스가 이 클래스의 인스턴스에서 Resources 속성 값을 serialize해야 하는지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 FrameworkTemplate)
ShouldSerializeVisualTree()

serialization 프로세스가 이 클래스의 인스턴스에서 VisualTree 속성 값을 serialize해야 하는지 여부를 나타내는 값을 반환합니다.

(다음에서 상속됨 FrameworkTemplate)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
UnregisterName(String)

XAML 이름 범위에서 이름/개체 매핑을 제거합니다.

(다음에서 상속됨 FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

템플릿 기반 부모가 null이 아닌 ItemsPresenter 개체인지 확인합니다.

VerifyAccess()

호출 스레드가 이 DispatcherObject액세스할 수 있도록 합니다.

(다음에서 상속됨 DispatcherObject)

명시적 인터페이스 구현

INameScope.FindName(String)

제공된 식별 이름이 있는 개체를 반환합니다.

(다음에서 상속됨 FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

지정된 앰비언트 속성을 현재 범위에서 사용할 수 있는지 여부를 쿼리합니다.

(다음에서 상속됨 FrameworkTemplate)

적용 대상