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

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

Atributy

Příklady

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

ListBoxPro , výchozí ItemsPanelTemplate určuje VirtualizingStackPanel. Pro MenuItem, výchozí používá WrapPanel. Pro StatusBar, výchozí používá DockPanel.

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

Poskytuje ItemsControl skvělou flexibilitu pro vizuální přizpůsobení a poskytuje mnoho vlastností stylů a šablon. Pomocí ItemContainerStyle vlastnosti nebo ItemContainerStyleSelector vlastnosti nastavíte styl tak, aby ovlivnil vzhled prvků, které obsahují datové položky. Například vygenerované ListBoxkontejnery jsou ListBoxItem ovládací prvky, pro , pro ComboBox, jsou ComboBoxItem ovládací prvky. Pokud používáte seskupení na ovládacím prvku, můžete použít GroupStyle vlastnost nebo GroupStyleSelector vlastnost. Chcete-li určit vizualizaci datových objektů, použijte ItemTemplate vlastnost nebo ItemTemplateSelector vlastnost. Další informace najdete v tématu Přehled šablon dat.

Informace o vlastnosti závislosti

Položka Hodnota
Pole Identifikátor ItemsPanelProperty
Vlastnosti metadat nastavené na true Žádný

Platí pro