ItemsControl.ItemsPanel Свойство

Определение

Возвращает или задает шаблон, определяющий панель, управляющую размещением элементов.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

Значение свойства

Объект ItemsPanelTemplate, определяющий панель, используемую для размещения элементов.An 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>

Комментарии

Для значение по умолчанию 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 это элементы управления. для ComboBox, они являются ComboBoxItem элементами управления.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Если вы используете группирование в элементе управления, можно использовать GroupStyle свойство или. GroupStyleSelectorIf 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

Применяется к

Дополнительно