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) |
Применяется к
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по