Sdílet prostřednictvím


ItemsControl.ItemsPanel Vlastnost

Definice

Získá nebo nastaví šablonu, která definuje panel, který řídí rozložení položek.

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

Hodnota vlastnosti

Definuje ItemsPanelTemplate panel, který má být použit pro rozložení položek. Výchozí hodnota pro ItemsControl je , ItemsPanelTemplate která určuje StackPanel.

Atributy

Příklady

Chcete-li vytvořit vodorovný ListBoxobjekt , můžete vytvořit šablonu, která určuje vodorovnou StackPanel , a nastavit ji jako ItemsPanel vlastnost . Následující příklad ukazuje , ListBoxStyle který vytvoří vodorovný ListBox.

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

Následující příklad používá k ControlTemplate vytvoření vodorovné šířky ListBox se zaoblenými rohy. V tomto příkladu ItemsPanel je místo nastavení vlastnosti jako v předchozím příkladu zadána vodorovná StackPanel šířka v rámci objektu ControlTemplate. Vlastnost je nastavená IsItemsHosttrue na hodnotu , StackPanelcož znamená, že vygenerované položky by měly být na panelu. Pokud ho zadáte tímto způsobem, ItemsPanel uživatel ovládacího prvku nemůže nahradit bez použití ControlTemplate. Proto to udělejte jenom v případě, že víte, že nechcete, aby byl panel nahrazen bez použití šablony.

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

Pokud chcete dosáhnout stejných výsledků, můžete také postupovat následovně. V tomto případě ItemsPresenter vytvoří panel pro rozložení položek na základě toho, co je určeno v 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>

Poznámky

ListBoxVýchozí hodnota ItemsPanelTemplate pro VirtualizingStackPanelurčuje . Ve výchozím nastavení se pro MenuItempoužívá WrapPanel. Ve výchozím nastavení se pro StatusBarpoužívá DockPanel.

Chcete-li ovlivnit rozložení položek v objektu ItemsControl, použijte tuto vlastnost k zadání objektu ItemsPanelTemplate.

Poskytuje ItemsControl velkou flexibilitu pro vizuální přizpůsobení a poskytuje mnoho vlastností stylů a šablon. Pomocí ItemContainerStyle vlastnosti nebo ItemContainerStyleSelector vlastnosti můžete nastavit styl, který ovlivní vzhled prvků, které obsahují datové položky. Například pro ListBoxjsou vygenerované kontejnery ListBoxItem ovládací prvky, pro ComboBoxjsou to ComboBoxItem ovládací prvky. Pokud u ovládacího prvku používáte seskupování, můžete použít GroupStyle vlastnost nebo GroupStyleSelector . K určení vizualizace datových objektů použijte ItemTemplate vlastnost nebo ItemTemplateSelector . Další informace najdete v tématu Přehled šablon dat.

Informace o vlastnosti závislosti

Pole Identifikátor ItemsPanelProperty
Vlastnosti metadat nastavené na true Žádné

Platí pro