Udostępnij za pośrednictwem


ItemsPanelTemplate Klasa

Definicja

Określa panel, który ItemsPresenter tworzy dla układu elementów ItemsControl.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
Dziedziczenie

Przykłady

Aby utworzyć ListBoxpoziomą, można utworzyć szablon określający poziomą StackPanel i ustawić ją jako właściwość ItemsPanel. W poniższym przykładzie przedstawiono ListBoxStyle, która tworzy poziomą ListBox.

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

W poniższym przykładzie użyto ControlTemplate do utworzenia ListBox poziomej, która ma zaokrąglone rogi. Należy pamiętać, że w tym przykładzie zamiast ustawiać właściwość ItemsPanel, jak w poprzednim przykładzie, pozioma StackPanel jest określona w ControlTemplate. Należy pamiętać, że właściwość IsItemsHost jest ustawiona na true na StackPanel, co wskazuje, że wygenerowane elementy powinny zostać wyświetlone w panelu. Po określeniu go w ten sposób ItemsPanel nie można zastąpić przez użytkownika kontrolki bez użycia ControlTemplate. W związku z tym należy to zrobić tylko wtedy, gdy wiesz, że nie chcesz, aby panel został zastąpiony bez użycia szablonu.

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

Alternatywnie możesz wykonać następujące czynności, aby osiągnąć te same wyniki. W tym przypadku ItemsPresenter tworzy panel dla układu elementów na podstawie tego, co jest określone przez 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>

Aby zapoznać się z przykładem używania różnych właściwości stylów i tworzenia szablonów w ItemsControl, zobacz Data Templating Overview.

Uwagi

ItemsPanelTemplate określa panel używany do układu elementów. GroupStyle ma właściwość Panel typu ItemsPanelTemplate. typy ItemsControl mają właściwość ItemsPanel typu ItemsPanelTemplate.

Każdy typ ItemsControl ma domyślną ItemsPanelTemplate. Dla klasy ItemsControl domyślną wartością ItemsPanel jest ItemsPanelTemplate, która określa StackPanel. W przypadku ListBoxwartość domyślna używa VirtualizingStackPanel. W przypadku MenuItemwartość domyślna używa WrapPanel. W przypadku StatusBarwartość domyślna używa DockPanel.

Konstruktory

ItemsPanelTemplate()

Inicjuje wystąpienie klasy ItemsPanelTemplate.

ItemsPanelTemplate(FrameworkElementFactory)

Inicjuje wystąpienie klasy ItemsPanelTemplate przy użyciu określonego szablonu.

Właściwości

Dispatcher

Pobiera Dispatcher jest skojarzony z tym DispatcherObject.

(Odziedziczone po DispatcherObject)
HasContent

Pobiera wartość wskazującą, czy ten szablon ma zoptymalizowaną zawartość.

(Odziedziczone po FrameworkTemplate)
IsSealed

Pobiera wartość wskazującą, czy ten obiekt jest w stanie niezmiennym, więc nie można go zmienić.

(Odziedziczone po FrameworkTemplate)
Resources

Pobiera lub ustawia kolekcję zasobów, które mogą być używane w zakresie tego szablonu.

(Odziedziczone po FrameworkTemplate)
Template

Pobiera lub ustawia odwołanie do obiektu, który rejestruje lub odtwarza węzły XAML dla szablonu, gdy szablon jest zdefiniowany lub stosowany przez składnik zapisywania.

(Odziedziczone po FrameworkTemplate)
VisualTree

Pobiera lub ustawia węzeł główny szablonu.

(Odziedziczone po FrameworkTemplate)

Metody

CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObject.

(Odziedziczone po DispatcherObject)
Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
FindName(String, FrameworkElement)

Znajduje element skojarzony z określoną nazwą zdefiniowaną w tym szablonie.

(Odziedziczone po FrameworkTemplate)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
LoadContent()

Ładuje zawartość szablonu jako wystąpienie obiektu i zwraca element główny zawartości.

(Odziedziczone po FrameworkTemplate)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
RegisterName(String, Object)

Rejestruje nową parę nazw/obiektów w bieżącym zakresie nazw.

(Odziedziczone po FrameworkTemplate)
Seal()

Blokuje szablon, aby nie można go było zmienić.

(Odziedziczone po FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość właściwości Resources w wystąpieniach tej klasy.

(Odziedziczone po FrameworkTemplate)
ShouldSerializeVisualTree()

Zwraca wartość wskazującą, czy procesy serializacji powinny serializować wartość właściwości VisualTree w wystąpieniach tej klasy.

(Odziedziczone po FrameworkTemplate)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
UnregisterName(String)

Usuwa mapowanie nazw/obiektów z zakresu nazw XAML.

(Odziedziczone po FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Sprawdza, czy szablonowy obiekt nadrzędny jest obiektem ItemsPresenter o wartości innej niż null.

VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObject.

(Odziedziczone po DispatcherObject)

Jawne implementacje interfejsu

INameScope.FindName(String)

Zwraca obiekt, który ma podaną nazwę identyfikującą.

(Odziedziczone po FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Kwerenda, czy określona właściwość otoczenia jest dostępna w bieżącym zakresie.

(Odziedziczone po FrameworkTemplate)

Dotyczy