ItemsPanelTemplate Класс

Определение

Указывает панель, создаваемую ItemsPresenter для размещения элементов ItemsControl.Specifies the panel that the ItemsPresenter creates for the layout of the items of an 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 и задающий его в качестве свойства.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. В следующем примере показан объект ListBox Style , который создает горизонтальную ListBox.The following example shows a ListBox Style that creates a horizontal ListBox.

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

В следующем примере используется ControlTemplate для создания горизонтальной оси ListBox с закругленными углами.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. Обратите внимание, что в этом примере вместо задания ItemsPanel свойства, как в предыдущем примере, по StackPanel горизонтали ControlTemplateзадается в.Note that in this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. Обратите внимание IsItemsHost , что для true StackPanelсвойства задано значение, указывающее, что созданные элементы должны переключаться на панель.Note that the IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. При указании этого способа ItemsPanel не может быть заменен пользователем элемента управления без ControlTemplateиспользования.When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. Поэтому это делается только в том случае, если вы не хотите, чтобы панель заменялась без использования шаблона.Therefore, only do this if you know you wouldn't want the panel to be replaced without the use of a template.

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

Кроме того, можно выполнить следующие действия, чтобы получить те же результаты.Alternatively, you can do the following to achieve the same results. В этом случае ItemsPresenter компонент создает панель для макета элементов в зависимости от того, что указано в ItemsPanelTemplate.In this case, the ItemsPresenter creates the panel for the layout of the items based on what is specified by the 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см. в разделе Общие сведения о шаблонах данных.For an example of how to use the different styling and templating properties on the ItemsControl, see Data Templating Overview.

Комментарии

ItemsPanelTemplate Задает панель, используемую для макета элементов.The ItemsPanelTemplate specifies the panel that is used for the layout of items. GroupStyleимеет свойство, имеющее тип ItemsPanelTemplate. PanelGroupStyle has a Panel property that is of type ItemsPanelTemplate. ItemsControlтипы имеют ItemsPanel свойство, имеющее тип ItemsPanelTemplate.ItemsControl types have an ItemsPanel property that is of type ItemsPanelTemplate.

Каждый ItemsControl тип имеет значение по ItemsPanelTemplateумолчанию.Each ItemsControl type has a default ItemsPanelTemplate. Для класса значением по ItemsPanel ItemsPanelTemplate умолчаниюStackPanelявляется, которое указывает. ItemsControlFor the ItemsControl class, the default ItemsPanel value is an ItemsPanelTemplate that specifies a StackPanel. Для значение по умолчанию VirtualizingStackPanelиспользует. ListBoxFor the ListBox, the default uses the VirtualizingStackPanel. Для MenuItemпараметр по умолчанию WrapPanelиспользует.For MenuItem, the default uses WrapPanel. Для StatusBarпараметр по умолчанию DockPanelиспользует.For StatusBar, the default uses DockPanel.

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

ItemsPanelTemplate()

Инициализирует экземпляр класса ItemsPanelTemplate.Initializes an instance of the ItemsPanelTemplate class.

ItemsPanelTemplate(FrameworkElementFactory)

Инициализирует экземпляр класса ItemsPanelTemplate с указанным шаблоном.Initializes an instance of the ItemsPanelTemplate class with the specified template.

Свойства

Dispatcher

Возвращает объект Dispatcher, с которым связан этот объект DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

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

Возвращает значение, указывающее, имеет ли данный шаблон оптимизированное содержимое.Gets a value that indicates whether this template has optimized content.

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

Возвращает значение, указывающее, находится ли данный объект в неизменяемом состоянии (когда изменить его нельзя).Gets a value that indicates whether this object is in an immutable state so it cannot be changed.

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

Получает или задает коллекцию ресурсов, которые могут использоваться в области видимости данного шаблона.Gets or sets the collection of resources that can be used within the scope of this template.

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

Получает или задает ссылку на объект, который записывающий или воспроизводящий узлы XAML для шаблона при определении или применении шаблона модулем записи.Gets or sets a reference to the object that records or plays the XAML nodes for the template when the template is defined or applied by a writer.

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

Получает или задает корневой узел шаблона.Gets or sets the root node of the template.

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

Методы

CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

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

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Находит элемент, связанный с указанным именем, определенным в данном шаблоне.Finds the element associated with the specified name defined within this template.

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

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

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

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

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

Загружает содержимое шаблона в виде экземпляра объекта и возвращает корневой элемент содержимого.Loads the content of the template as an instance of an object and returns the root element of the content.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Регистрирует новую пару имя-объект в текущей области видимости имен.Registers a new name/object pair into the current name scope.

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

Блокирует шаблон, предотвращая его изменение.Locks the template so it cannot be changed.

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

Возвращает значение, указывающее, должны ли процессы сериализации сериализировать значение свойства Resources для экземпляров этого класса.Returns a value that indicates whether serialization processes should serialize the value of the Resources property on instances of this class.

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

Возвращает значение, указывающее, должны ли процессы сериализации сериализировать значение свойства VisualTree для экземпляров этого класса.Returns a value that indicates whether serialization processes should serialize the value of the VisualTree property on instances of this class.

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

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

Удаляет из области видимости имен XAML сопоставление имя-объект.Removes a name/object mapping from the XAML namescope.

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

Проверяет, не является ли шаблонный родительский объект необнуляемым объектом ItemsPresenter.Checks that the templated parent is a non-null ItemsPresenter object.

VerifyAccess()

Обеспечивает наличие у вызывающего потока доступ к этому DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

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

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

INameScope.FindName(String)

Возвращает объект, имеющий предоставленное идентифицирующее имя.Returns an object that has the provided identifying name.

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

Запрашивает, доступно ли заданное внешнее свойство в текущей области.Queries whether a specified ambient property is available in the current scope.

(Унаследовано от FrameworkTemplate)
ISealable.CanSeal (Унаследовано от FrameworkTemplate)
ISealable.IsSealed (Унаследовано от FrameworkTemplate)
ISealable.Seal() (Унаследовано от FrameworkTemplate)

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

Дополнительно