情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

ItemsControl.ItemsPanel プロパティ

項目のレイアウトを制御するパネルを定義するテンプレートを取得または設定します。

名前空間:  System.Windows.Controls
アセンブリ:  PresentationFramework (PresentationFramework.dll 内)
XAML の XMLNS: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(false)]
public ItemsPanelTemplate ItemsPanel { get; set; }
<object>
  <object.ItemsPanel>
    <ItemsPanelTemplate .../>
  </object.ItemsPanel>
</object>

プロパティ値

型: System.Windows.Controls.ItemsPanelTemplate
項目のレイアウトに使用するパネルを定義する ItemsPanelTemplate ItemsControl の既定値は、StackPanel を指定する ItemsPanelTemplate です。

識別子フィールド

ItemsPanelProperty

true に設定されたメタデータのプロパティ

None

ListBox の場合、既定の ItemsPanelTemplateVirtualizingStackPanel を指定します。 MenuItem の場合、既定として WrapPanel が使用されます。 StatusBar の場合、既定として DockPanel が使用されます。

ItemsControl の項目のレイアウトに影響を与えるためには、このプロパティを使用して ItemsPanelTemplate を指定します。

ItemsControl は、視覚的カスタマイズに関して高い柔軟性を提供し、スタイルとテンプレートのプロパティを数多く備えています。 ItemContainerStyle プロパティまたは ItemContainerStyleSelector プロパティを使用して、データ項目を格納する要素の外観に影響するスタイルを設定します。 たとえば、ListBox の場合、生成されるコンテナーは ListBoxItem コントロールであり、ComboBox の場合は、ComboBoxItem コントロールです。 コントロールでグループ化を使用している場合は、GroupStyle プロパティまたは GroupStyleSelector プロパティを使用できます。 データ オブジェクトの視覚化を指定するには、ItemTemplate プロパティまたは ItemTemplateSelector プロパティを使用します。 詳細については、「データ テンプレートの概要」を参照してください。

水平 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 内で指定しています。 StackPanel IsItemsHost プロパティが true に設定されているので、生成された項目はパネル内に移動します。 このような方法で指定した場合、コントロールのユーザーは、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>


.NET Framework

サポート対象: 4、3.5、3.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

表示:
© 2014 Microsoft