ItemsControl.ItemsPanel Właściwość

Definicja

Pobiera lub ustawia szablon definiujący panel, który kontroluje układ elementów.Gets or sets the template that defines the panel that controls the layout of items.

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

ItemsPanelTemplateDefiniuje panel do użycia na potrzeby układu elementów.An ItemsPanelTemplate that defines the panel to use for the layout of the items. Wartość domyślna ItemsControl to ItemsPanelTemplate a, która określa StackPanel .The default value for the ItemsControl is an ItemsPanelTemplate that specifies a StackPanel.

Atrybuty

Przykłady

Aby utworzyć poziomy ListBox , można utworzyć szablon, który określa poziom StackPanel i ustawić go jako ItemsPanel Właściwość.To create a horizontal ListBox, you can create a template that specifies a horizontal StackPanel and set it as the ItemsPanel property. Poniższy przykład pokazuje ListBox Style , że tworzy poziom 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>

Poniższy przykład używa, ControlTemplate Aby utworzyć poziomy ListBox , które mają zaokrąglone rogi.The following example uses a ControlTemplate to create a horizontal ListBox that has rounded corners. W tym przykładzie zamiast ustawiania ItemsPanel właściwości tak jak w poprzednim przykładzie, poziom StackPanel jest określony w ControlTemplate .In this example, instead of setting the ItemsPanel property as in previous example, the horizontal StackPanel is specified within the ControlTemplate. IsItemsHostWłaściwość jest ustawiona na wartość true StackPanel , co oznacza, że wygenerowane elementy powinny przejść do panelu.The IsItemsHost property is set to true on the StackPanel, indicating that the generated items should go in the panel. Po określeniu go w ten sposób ItemsPanel nie można go zastąpić przez użytkownika formantu bez użycia ControlTemplate .When you specify it this way, the ItemsPanel cannot be replaced by the user of the control without using a ControlTemplate. W związku z tym należy to zrobić tylko wtedy, gdy wiadomo, że panel nie ma zostać zastąpiony bez użycia szablonu.Therefore, only do this if you know you would not 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>

Alternatywnie można wykonać następujące czynności, aby osiągnąć te same wyniki.Alternatively, you can do the following to achieve the same results. W takim przypadku ItemsPresenter tworzy panel układu elementów na podstawie tego, co jest określone przez 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>

Uwagi

Dla programu ListBox , wartością domyślną jest ItemsPanelTemplate VirtualizingStackPanel .For the ListBox, the default ItemsPanelTemplate specifies the VirtualizingStackPanel. Dla programu MenuItem , domyślnie używa WrapPanel .For MenuItem, the default uses WrapPanel. Dla programu StatusBar , domyślnie używa DockPanel .For StatusBar, the default uses DockPanel.

Aby mieć wpływ na układ elementów w ItemsControl , należy użyć tej właściwości do określenia ItemsPanelTemplate .To affect the layout of the items in an ItemsControl, you use this property to specify a ItemsPanelTemplate.

ItemsControlZapewnia doskonałą elastyczność dostosowywania wizualizacji i udostępnia wiele właściwości stylów i tworzenia szablonów.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. ItemContainerStyleWłaściwość lub ItemContainerStyleSelector właściwość służy do ustawiania stylu, który ma wpływ na wygląd elementów zawierających elementy danych.You use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Na przykład dla ListBox , wygenerowane kontenery to ListBoxItem Controls; dla ComboBox , są one ComboBoxItem kontrolkami.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Jeśli używasz grupowania w formancie, możesz użyć GroupStyle GroupStyleSelector właściwości lub.If you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property. Aby określić wizualizację obiektów danych, użyj ItemTemplate ItemTemplateSelector właściwości lub.To specify the visualization of the data objects, use the ItemTemplate or the ItemTemplateSelector property. Aby uzyskać więcej informacji, zobacz tworzenia szablonów danych — omówienie.For more information, see Data Templating Overview.

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

Pole identyfikatoraIdentifier field ItemsPanelProperty
Właściwości metadanych ustawione na trueMetadata properties set to true BrakNone

Dotyczy

Zobacz też