ItemsControl.ItemsPanel Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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; ComboBoxsą ComboBoxItem 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 |