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

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

Atributy

Příklady

Chcete-li vytvořit vodorovný ListBox, můžete vytvořit šablonu, která určuje vodorovnou StackPanel a nastavit ji jako vlastnost ItemsPanel. Následující příklad ukazuje ListBoxStyle, který vytvoří vodorovnou 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á ControlTemplate k vytvoření vodorovné ListBox, který má zaoblené rohy. V tomto příkladu se místo nastavení vlastnosti ItemsPanel jako v předchozím příkladu zadává vodorovná StackPanel v rámci ControlTemplate. Vlastnost IsItemsHost je nastavena na true na StackPanel, což znamená, že vygenerované položky by měly jít na panelu. Pokud jej zadáte tímto způsobem, nelze ItemsPanel nahradit uživatelem ovládacího prvku 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>

Můžete také provést následující kroky, abyste dosáhli stejných výsledků. V tomto případě ItemsPresenter vytvoří panel pro rozložení položek na základě toho, co je určeno 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

Výchozí ItemsPanelTemplate pro ListBoxurčuje VirtualizingStackPanel. Pro MenuItempoužívá výchozí WrapPanel. Pro StatusBarpoužívá výchozí DockPanel.

Chcete-li ovlivnit rozložení položek v ItemsControl, použijete tuto vlastnost k určení ItemsPanelTemplate.

ItemsControl poskytuje skvělou flexibilitu pro přizpůsobení vizuálu a poskytuje mnoho vlastností stylů a šablon. Pomocí vlastnosti ItemContainerStyle nebo vlastnosti ItemContainerStyleSelector nastavíte styl, který ovlivní vzhled prvků, které obsahují datové položky. Například pro ListBoxjsou vygenerované kontejnery ListBoxItem ovládací prvky; pro ComboBoxjsou ovládací prvky ComboBoxItem. Pokud používáte seskupení na ovládacím prvku, můžete použít vlastnost GroupStyle nebo GroupStyleSelector. Pokud chcete určit vizualizaci datových objektů, použijte ItemTemplate nebo vlastnost ItemTemplateSelector. Další informace naleznete v tématu Přehled šablon dat.

Informace o vlastnosti závislosti

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

Platí pro