次の方法で共有


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>

または、同じ結果を得るために次の操作を行うことができます。 この場合、ItemsPresenter は、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でさまざまなスタイル設定プロパティとテンプレート プロパティを使用する方法の例については、「Data Templating Overview」を参照してください。

注釈

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)

シリアル化プロセスがこのクラスのインスタンスの Resources プロパティの値をシリアル化する必要があるかどうかを示す値を返します。

(継承元 FrameworkTemplate)
ShouldSerializeVisualTree()

シリアル化プロセスがこのクラスのインスタンスの VisualTree プロパティの値をシリアル化する必要があるかどうかを示す値を返します。

(継承元 FrameworkTemplate)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)
UnregisterName(String)

XAML 名前スコープから名前/オブジェクト マッピングを削除します。

(継承元 FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

テンプレート化された親が null 以外の ItemsPresenter オブジェクトであることを確認します。

VerifyAccess()

呼び出し元のスレッドがこの DispatcherObjectにアクセスすることを強制します。

(継承元 DispatcherObject)

明示的なインターフェイスの実装

INameScope.FindName(String)

指定された識別名を持つオブジェクトを返します。

(継承元 FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

指定したアンビエント プロパティが現在のスコープで使用できるかどうかをクエリします。

(継承元 FrameworkTemplate)

適用対象