ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel ItemsControl.ItemsPanel Property

定義

項目のレイアウトを制御するパネルを定義するテンプレートを取得または設定します。Gets or sets the template that defines the panel that controls the layout of items.

public:
 property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate

プロパティ値

項目のレイアウトに使用するパネルを定義する ItemsPanelTemplateAn ItemsPanelTemplate that defines the panel to use for the layout of the items. ItemsControl の既定値は、ItemsPanelTemplate を指定する StackPanel です。The default value for the ItemsControl is an ItemsPanelTemplate that specifies a StackPanel.

水平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水平が指定されています。In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. trueIsItemsHostStackPanel、プロパティがに設定されています。これは、生成された項目をパネルに表示する必要があることを示します。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 would not 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>

注釈

の場合、既定ItemsPanelTemplateではがVirtualizingStackPanel指定されます。 ListBoxFor the ListBox, the default ItemsPanelTemplate specifies the VirtualizingStackPanel. MenuItem場合、既定でWrapPanelはが使用されます。For MenuItem, the default uses WrapPanel. StatusBar場合、既定でDockPanelはが使用されます。For StatusBar, the default uses DockPanel.

ItemsControlの項目のレイアウトに影響を与えるには、このプロパティを使用しItemsPanelTemplateてを指定します。To affect the layout of the items in an ItemsControl, you use this property to specify a ItemsPanelTemplate.

ItemsControlは、ビジュアルのカスタマイズに優れた柔軟性が提供され、多くのスタイル設定とテンプレートプロパティが提供されます。The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. ItemContainerStyle プロパティItemContainerStyleSelectorまたはプロパティを使用して、データ項目を含む要素の外観に影響を与えるスタイルを設定します。You use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. たとえば、のListBox場合、生成されたListBoxItemコンテナーはコントロールであり、 ComboBoxItemComboBox場合はコントロールです。For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. コントロールで grouping を使用している場合GroupStyleは、プロパティまたはGroupStyleSelectorプロパティを使用できます。If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. データオブジェクトの視覚化を指定するにItemTemplate ItemTemplateSelectorは、プロパティまたはプロパティを使用します。To specify the visualization of the data objects, use the ItemTemplate or the ItemTemplateSelector property. 詳しくは「 データ テンプレートの概要」をご覧ください。For more information, see Data Templating Overview.

依存プロパティ情報Dependency Property Information

識別子フィールドIdentifier field ItemsPanelProperty
メタデータプロパティがに設定されるtrueMetadata properties set to true NoneNone

適用対象

こちらもご覧ください