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
- Наследование
Примеры
Чтобы создать горизонтальное, можно создать шаблон, указывающий горизонтальную ListBoxStackPanel и задающую его в качестве 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. Обратите внимание, что для свойства задано trueStackPanelзначение , указывающее, IsItemsHost что созданные элементы должны находиться на панели. При указании этого способа 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 панель, используемую для макета элементов. GroupStyle Panel имеет свойство, которое имеет тип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) |
Проверяет, является ли шаблон родительский объект не null ItemsPresenter . |
| VerifyAccess() |
Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| INameScope.FindName(String) |
Возвращает объект, имеющий указанное имя идентификации. (Унаследовано от FrameworkTemplate) |
| IQueryAmbient.IsAmbientPropertyAvailable(String) |
Запрашивает, доступно ли указанное свойство окружения в текущей области. (Унаследовано от FrameworkTemplate) |