ItemsPanelTemplate Класс

Определение

Указывает панель, создаваемую ItemsPresenter для размещения элементов ItemsControl.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
Наследование

Примеры

Чтобы создать горизонтальный 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>

Пример использования различных свойств стилей и шаблонов в см. в ItemsControlразделе Общие сведения о шаблоне данных.

Комментарии

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

Каждый ItemsControl тип имеет значение по умолчанию ItemsPanelTemplate. ItemsControl Для класса значением по умолчанию ItemsPanel является ItemsPanelTemplate , задающий StackPanel. Для по ListBoxумолчанию используется VirtualizingStackPanel. Для MenuItemпо умолчанию используется WrapPanel. Для StatusBarпо умолчанию используется DockPanel.

Конструкторы

ItemsPanelTemplate()

Инициализирует экземпляр класса ItemsPanelTemplate.

ItemsPanelTemplate(FrameworkElementFactory)

Инициализирует экземпляр класса ItemsPanelTemplate с указанным шаблоном.

Свойства

Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.

(Унаследовано от DispatcherObject)
HasContent

Возвращает значение, указывающее, имеет ли данный шаблон оптимизированное содержимое.

(Унаследовано от FrameworkTemplate)
IsSealed

Возвращает значение, указывающее, находится ли данный объект в неизменяемом состоянии (когда изменить его нельзя).

(Унаследовано от FrameworkTemplate)
Resources

Получает или задает коллекцию ресурсов, которые могут использоваться в области видимости данного шаблона.

(Унаследовано от FrameworkTemplate)
Template

Получает или задает ссылку на объект, который записывающий или воспроизводящий узлы XAML для шаблона при определении или применении шаблона модулем записи.

(Унаследовано от FrameworkTemplate)
VisualTree

Получает или задает корневой узел шаблона.

(Унаследовано от FrameworkTemplate)

Методы

CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
FindName(String, FrameworkElement)

Находит элемент, связанный с указанным именем, определенным в этом шаблоне.

(Унаследовано от FrameworkTemplate)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
LoadContent()

Загружает содержимое шаблона в виде экземпляра объекта и возвращает корневой элемент содержимого.

(Унаследовано от FrameworkTemplate)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
RegisterName(String, Object)

Регистрирует новую пару имя-объект в текущей области видимости имен.

(Унаследовано от FrameworkTemplate)
Seal()

Блокирует шаблон, предотвращая его изменение.

(Унаследовано от FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Возвращает значение, указывающее, должны ли процессы сериализации сериализировать значение свойства Resources для экземпляров этого класса.

(Унаследовано от FrameworkTemplate)
ShouldSerializeVisualTree()

Возвращает значение, указывающее, должны ли процессы сериализации сериализировать значение свойства VisualTree для экземпляров этого класса.

(Унаследовано от FrameworkTemplate)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
UnregisterName(String)

Удаляет из области видимости имен XAML сопоставление имя-объект.

(Унаследовано от FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Проверяет, не является ли шаблонный родительский объект необнуляемым объектом ItemsPresenter.

VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

Явные реализации интерфейса

INameScope.FindName(String)

Возвращает объект с предоставленным идентифицирующим именем.

(Унаследовано от FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Запрашивает, доступно ли заданное внешнее свойство в текущей области.

(Унаследовано от FrameworkTemplate)

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