ItemsPanelTemplate 클래스

정의

ItemsPresenterItemsControl의 항목 레이아웃에 대해 만드는 패널을 지정합니다.Specifies the panel that the ItemsPresenter creates for the layout of the items of an ItemsControl.

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 속성입니다.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.Note that in this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. IsItemsHost 속성이로 설정 되어 trueStackPanel를 나타내는 생성된 된 항목 패널에서 이동 해야 하는 합니다.Note that 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 wouldn't 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>

다양 한 스타일 지정 및 템플릿 속성을 사용 하는 방법의 예는 ItemsControl를 참조 하세요 데이터 템플릿 개요합니다.For an example of how to use the different styling and templating properties on the ItemsControl, see Data Templating Overview.

설명

ItemsPanelTemplate 항목의 레이아웃에 사용 되는 패널을 지정 합니다.The ItemsPanelTemplate specifies the panel that is used for the layout of items. GroupStylePanel 형식의 속성 ItemsPanelTemplate합니다.GroupStyle has a Panel property that is of type ItemsPanelTemplate. ItemsControl 형식에는 ItemsPanel 형식의 속성 ItemsPanelTemplate합니다.ItemsControl types have an ItemsPanel property that is of type ItemsPanelTemplate.

ItemsControl 형식에는 기본 ItemsPanelTemplate입니다.Each ItemsControl type has a default ItemsPanelTemplate. 에 대 한 합니다 ItemsControl 클래스의 경우 기본 ItemsPanel 값이를 ItemsPanelTemplate 지정 하는 StackPanel합니다.For the ItemsControl class, the default ItemsPanel value is an ItemsPanelTemplate that specifies a StackPanel. 에 대 한 합니다 ListBox를 사용 하 여 기본은 VirtualizingStackPanel합니다.For the ListBox, the default uses the VirtualizingStackPanel. 에 대 한 MenuItem를 사용 하 여 기본 WrapPanel입니다.For MenuItem, the default uses WrapPanel. 에 대 한 StatusBar를 사용 하 여 기본 DockPanel입니다.For StatusBar, the default uses DockPanel.

생성자

ItemsPanelTemplate()

ItemsPanelTemplate 클래스의 인스턴스를 초기화합니다.Initializes an instance of the ItemsPanelTemplate class.

ItemsPanelTemplate(FrameworkElementFactory)

지정된 템플릿을 사용하여 ItemsPanelTemplate 클래스의 인스턴스를 초기화합니다.Initializes an instance of the ItemsPanelTemplate class with the specified template.

속성

Dispatcher

Dispatcher와 연결된 DispatcherObject를 가져옵니다.Gets the Dispatcher this DispatcherObject is associated with.

(다음에서 상속됨 DispatcherObject)
HasContent

이 템플릿의 콘텐츠가 최적화되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether this template has optimized content.

(다음에서 상속됨 FrameworkTemplate)
IsSealed

이 개체가 변경할 수 없는 변경 불가능 상태인지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether this object is in an immutable state so it cannot be changed.

(다음에서 상속됨 FrameworkTemplate)
Resources

이 템플릿의 범위 내에서 사용할 수 있는 리소스의 컬렉션을 가져오거나 설정합니다.Gets or sets the collection of resources that can be used within the scope of this template.

(다음에서 상속됨 FrameworkTemplate)
Template

작성자가 템플릿을 정의하거나 적용할 때 해당 템플릿의 XAML 노드를 기록/재생하는 개체에 대한 참조를 가져오거나 설정합니다.Gets or sets a reference to the object that records or plays the XAML nodes for the template when the template is defined or applied by a writer.

(다음에서 상속됨 FrameworkTemplate)
VisualTree

템플릿의 루트 노드를 가져오거나 설정합니다.Gets or sets the root node of the template.

(다음에서 상속됨 FrameworkTemplate)

메서드

CheckAccess()

호출 스레드가 이 DispatcherObject에 액세스할 수 있는지 여부를 확인합니다.Determines whether the calling thread has access to this DispatcherObject.

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

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

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

이 템플릿 내에 정의된 지정한 이름과 연관된 요소를 찾습니다.Finds the element associated with the specified name defined within this template.

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

기본 해시 함수로 작동합니다.Serves as the default hash function.

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

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

템플릿의 콘텐츠를 개체의 인스턴스로 로드하고 콘텐츠의 루트 요소를 반환합니다.Loads the content of the template as an instance of an object and returns the root element of the content.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 이름 범위에 새 이름/개체 쌍을 등록합니다.Registers a new name/object pair into the current name scope.

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

템플릿을 변경할 수 없도록 잠급니다.Locks the template so it cannot be changed.

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

이 클래스의 인스턴스에서 serialization 프로세스를 통해 Resources 속성의 값을 serialize해야 하는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether serialization processes should serialize the value of the Resources property on instances of this class.

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

이 클래스의 인스턴스에서 serialization 프로세스를 통해 VisualTree 속성의 값을 serialize해야 하는지 여부를 나타내는 값을 반환합니다.Returns a value that indicates whether serialization processes should serialize the value of the VisualTree property on instances of this class.

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

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

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

XAML 이름 범위에서 이름/개체 매핑을 제거합니다.Removes a name/object mapping from the XAML namescope.

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

템플릿 기반 부모가 null이 아닌 ItemsPresenter 개체인지 확인합니다.Checks that the templated parent is a non-null ItemsPresenter object.

VerifyAccess()

호출 스레드에서 이 DispatcherObject에 액세스할 수 있는지 확인합니다.Enforces that the calling thread has access to this DispatcherObject.

(다음에서 상속됨 DispatcherObject)

명시적 인터페이스 구현

INameScope.FindName(String)

제공된 식별 이름이 있는 개체를 반환합니다.Returns an object that has the provided identifying name.

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

지정된 앰비언트 속성을 현재 범위에서 사용할 수 있는지 여부를 쿼리합니다.Queries whether a specified ambient property is available in the current scope.

(다음에서 상속됨 FrameworkTemplate)
ISealable.CanSeal (다음에서 상속됨 FrameworkTemplate)
ISealable.IsSealed (다음에서 상속됨 FrameworkTemplate)
ISealable.Seal() (다음에서 상속됨 FrameworkTemplate)

적용 대상

추가 정보