Эта статья переведена вручную. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

ItemsControl.ItemsPanel - свойство

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

Пространство имен:  System.Windows.Controls
Сборка:  PresentationFramework (в PresentationFramework.dll)
XMLNS для XAML: 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 является ItemsPanelTemplate, который указывает StackPanel.

Поле идентификатора

ItemsPanelProperty

Свойства метаданных, которым присвоено значение true

NONE

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

Для воздействия на размещение элементов в ItemsControl, используйте данное свойство для указания ItemsPanelTemplate.

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

Для создания горизонтального ListBox можно создать шаблон, указывающий горизонтальное StackPanel, и установить его в качестве свойства ItemsPanel. В следующем примере иллюстрируется ListBox Style, создающий горизонтальный 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>


.NET Framework

Поддерживается в версиях: 4, 3.5, 3.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 SP1

Windows 7, Windows Vista с пакетом обновления 1 (SP1) или выше, Windows XP с пакетом обновления 3 (SP3), Windows Server 2008 (Server Core не поддерживается), Windows Server 2008 R2 (Server Core поддерживается с пакетом обновления 1 (SP1) или более поздним), Windows Server 2003 SP2

.NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Добавления сообщества

Показ:
© 2015 Microsoft