Udostępnij za pośrednictwem


ItemsControl.ItemsPanel Właściwość

Definicja

Pobiera lub ustawia szablon definiujący panel, który kontroluje układ elementów.

public:
 property System::Windows::Controls::ItemsPanelTemplate ^ ItemsPanel { System::Windows::Controls::ItemsPanelTemplate ^ get(); void set(System::Windows::Controls::ItemsPanelTemplate ^ value); };
[System.ComponentModel.Bindable(false)]
public System.Windows.Controls.ItemsPanelTemplate ItemsPanel { get; set; }
[<System.ComponentModel.Bindable(false)>]
member this.ItemsPanel : System.Windows.Controls.ItemsPanelTemplate with get, set
Public Property ItemsPanel As ItemsPanelTemplate

Wartość właściwości

ItemsPanelTemplate definiujący panel do użycia dla układu elementów. Wartością domyślną ItemsControl jest ItemsPanelTemplate, która określa StackPanel.

Atrybuty

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. W tym przykładzie zamiast ustawiać właściwość ItemsPanel, jak w poprzednim przykładzie, pozioma StackPanel jest określona w ControlTemplate. Właściwość IsItemsHost jest ustawiona na wartość 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>

Uwagi

W przypadku ListBoxItemsPanelTemplate domyślna określa VirtualizingStackPanel. W przypadku MenuItemwartość domyślna używa WrapPanel. W przypadku StatusBarwartość domyślna używa DockPanel.

Aby wpłynąć na układ elementów w ItemsControl, należy użyć tej właściwości do określenia ItemsPanelTemplate.

ItemsControl zapewnia dużą elastyczność dostosowywania wizualizacji i zapewnia wiele właściwości stylów i tworzenia szablonów. Należy użyć właściwości ItemContainerStyle lub właściwości ItemContainerStyleSelector, aby ustawić styl, aby wpłynąć na wygląd elementów zawierających elementy danych. Na przykład w przypadku ListBoxwygenerowane kontenery są ListBoxItem kontrolkami; ComboBoxComboBoxItem kontrolkami. Jeśli używasz grupowania w kontrolce, możesz użyć właściwości GroupStyle lub GroupStyleSelector. Aby określić wizualizację obiektów danych, użyj właściwości ItemTemplate lub ItemTemplateSelector. Aby uzyskać więcej informacji, zobacz Omówienie tworzenia szablonów danych.

Informacje o właściwości zależności

Pole identyfikatora ItemsPanelProperty
Właściwości metadanych ustawione na true Żaden

Dotyczy