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

Element ItemsPanelTemplate definiujący panel do użycia dla układu elementów. Wartość domyślna dla elementu ItemsControl to , ItemsPanelTemplate która określa StackPanelwartość .

Atrybuty

Przykłady

Aby utworzyć poziomy ListBoxelement , możesz utworzyć szablon, który określa poziomy StackPanel i ustawiać go jako ItemsPanel właściwość . W poniższym przykładzie pokazano obiekt ListBox Style , który tworzy poziomy ListBoxobiekt .

<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 elementu , ControlTemplate aby utworzyć poziomy ListBox , który ma zaokrąglone rogi. W tym przykładzie zamiast ustawiać ItemsPanel właściwość, jak w poprzednim przykładzie, poziomy StackPanel jest określony w obiekcie ControlTemplate. Właściwość jest ustawiona IsItemsHost true na wartość w elemecie StackPanel, co oznacza, że wygenerowane elementy powinny być wyświetlane w panelu. Po określeniu jej w ten sposób ItemsPanel nie można zastąpić użytkownika kontrolki bez użycia elementu 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 obiekt ItemsPresenter tworzy panel dla układu elementów w oparciu o to, co jest określone przez element 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 parametru ListBoxwartość domyślna ItemsPanelTemplate określa wartość VirtualizingStackPanel. W przypadku MenuItemprogramu wartość domyślna używa elementu WrapPanel. W przypadku StatusBarprogramu wartość domyślna używa elementu DockPanel.

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

Zapewnia ItemsControl dużą elastyczność dostosowywania wizualizacji i zapewnia wiele właściwości stylów i tworzenia szablonów. Właściwość lub ItemContainerStyleSelector właściwość służy ItemContainerStyle do ustawiania stylu, aby wpływać na wygląd elementów zawierających elementy danych. Na przykład w przypadku ListBoxkontenerów generowanych przez ListBoxItem program są kontrolkami; dla ComboBoxelementu są ComboBoxItem to kontrolki. Jeśli używasz grupowania w kontrolce, możesz użyć GroupStyle właściwości lub GroupStyleSelector . Aby określić wizualizację obiektów danych, użyj ItemTemplate właściwości lub ItemTemplateSelector . Aby uzyskać więcej informacji, zobacz Omówienie tworzenia szablonów danych.

Informacje dotyczące właściwości zależności

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

Dotyczy

Zobacz też