ItemsControl.ItemsPanel Свойство

Определение

Возвращает или задает шаблон, определяющий панель, управляющую размещением элементов.

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; }
[<System.ComponentModel.Bindable(false)>]
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate

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

Объект ItemsPanelTemplate, определяющий панель, которая используется для размещения элементов. Значением по умолчанию для ItemsControl является объект ItemsPanelTemplate, который задает StackPanel.

Атрибуты

Примеры

Чтобы создать горизонтальный ListBox, можно создать шаблон, указывающий горизонтальный StackPanel , и задать его в ItemsPanel качестве свойства . В следующем примере показан объект , ListBoxStyle который создает горизонтальный ListBoxобъект .

<Style TargetType="ListBox">
  <Setter Property="ItemsPanel">
    <Setter.Value>
      <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"/>
      </ItemsPanelTemplate>
    </Setter.Value>
  </Setter>
</Style>

В следующем примере используется ControlTemplate для создания горизонтального ListBox объекта со скругленными углами. В этом примере вместо задания ItemsPanel свойства, как в предыдущем примере, горизонтальная StackPanel задается в ControlTemplate. Свойству IsItemsHost присвоено значение true в StackPanel, указывающее, что созданные элементы должны находиться на панели. Если указать его таким образом, ItemsPanel пользователь элемента управления не может заменить элемент управления без использования ControlTemplate. Поэтому это следует делать только в том случае, если вы знаете, что не хотите заменять панель без использования шаблона.

<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>

Комментарии

Для по ListBoxумолчанию ItemsPanelTemplate указывается VirtualizingStackPanel. Для MenuItemпо умолчанию используется WrapPanel. Для StatusBarпо умолчанию используется DockPanel.

Чтобы повлиять на макет элементов в ItemsControl, используйте это свойство для указания ItemsPanelTemplate.

обеспечивает ItemsControl большую гибкость для настройки визуальных элементов и предоставляет множество свойств стилей и шаблонов. Свойство или свойство используется ItemContainerStyle для ItemContainerStyleSelector задания стиля, влияющего на внешний вид элементов, содержащих элементы данных. Например, для ListBoxсозданные контейнеры являются ListBoxItem элементами управления; для ComboBox— элементами ComboBoxItem управления. Если вы используете группирование в элементе управления, можно использовать GroupStyle свойство или GroupStyleSelector . Чтобы указать визуализацию объектов данных, используйте ItemTemplate свойство или ItemTemplateSelector . Дополнительные сведения см. в статье Общие сведения о шаблонах данных.

Сведения о свойстве зависимостей

Поле идентификатора ItemsPanelProperty
Для свойств метаданных задано значение true Нет

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