ItemsPanelTemplate クラス

定義

ItemsPresenter の項目のレイアウト用に ItemsControl が作成するパネルを指定します。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水平ListBoxを作成するをStyle示しています。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 trueプロパティがに設定されていることに注意してください。これは、生成された項目をパネルに表示する必要があることを示しています。 StackPanelNote 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. GroupStyleに型ItemsPanelTemplateのプロパティがあります。 PanelGroupStyle 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. クラスの既定ItemsPanel値はItemsPanelTemplate 、をStackPanel指定するです。 ItemsControlFor the ItemsControl class, the default ItemsPanel value is an ItemsPanelTemplate that specifies a StackPanel. の場合VirtualizingStackPanel、既定ではが使用されます。 ListBoxFor 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)

シリアル化プロセスが、このクラスのインスタンスの Resources プロパティの値をシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether serialization processes should serialize the value of the Resources property on instances of this class.

(継承元 FrameworkTemplate)
ShouldSerializeVisualTree()

シリアル化プロセスが、このクラスのインスタンスの VisualTree プロパティの値をシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether serialization processes should serialize the value of the VisualTree property on instances of this class.

(継承元 FrameworkTemplate)
ToString()

現在のオブジェクトを表す string を返します。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)

適用対象

こちらもご覧ください