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 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します。In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. IsItemsHostプロパティに設定されてtrue上、StackPanelパネルで、生成された項目に入れることを示します。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>

注釈

ListBox、既定のItemsPanelTemplateを指定します、VirtualizingStackPanelします。For 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制御のComboBoxComboBoxItemコントロール。For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. 使用することができます、コントロールをグループ化を使用している場合、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 なしNone

適用対象

こちらもご覧ください