ItemsControl.ItemsPanel Egenskap

Definition

Hämtar eller anger mallen som definierar panelen som styr layouten för objekt.

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

Egenskapsvärde

En ItemsPanelTemplate som definierar panelen som ska användas för layouten för objekten. Standardvärdet för ItemsControl är ett ItemsPanelTemplate som anger en StackPanel.

Attribut

Exempel

Om du vill skapa en vågrät ListBoxkan du skapa en mall som anger en vågrät StackPanel och ange den som ItemsPanel egenskap. I följande exempel visas ett ListBoxStyle som skapar en vågrät ListBox.

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

I följande exempel används en ControlTemplate för att skapa en vågrät ListBox som har rundade hörn. I det här exemplet, i stället för att ItemsPanel ange egenskapen som i föregående exempel, anges den vågräta StackPanel i ControlTemplate. Egenskapen IsItemsHost är inställd true på på StackPanel, som anger att de genererade objekten ska gå till panelen. När du anger det på det här sättet kan ItemsPanel inte ersättas av användaren av kontrollen utan att använda en ControlTemplate. Därför gör du bara detta om du vet att du inte vill att panelen ska ersättas utan att använda en mall.

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

Du kan också göra följande för att uppnå samma resultat. I det här fallet ItemsPresenter skapar panelen för layouten för objekten baserat på vad som anges av 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>

Kommentarer

ListBoxFör anger standardinställningen ItemsPanelTemplateVirtualizingStackPanel. För MenuItemanvänder WrapPanelstandardinställningen . För StatusBaranvänder DockPanelstandardinställningen .

Om du vill påverka layouten för objekten i en ItemsControlanvänder du den här egenskapen för att ange en ItemsPanelTemplate.

Ger ItemsControl stor flexibilitet för visuell anpassning och ger många formaterings- och mallegenskaper. Du använder ItemContainerStyle egenskapen eller ItemContainerStyleSelector egenskapen för att ange ett format som påverkar utseendet på de element som innehåller dataobjekten. För är ListBox till exempel ListBoxItemde genererade containrarna kontroller. För ComboBox, är ComboBoxItem de kontroller. Om du använder gruppering på din kontroll kan du använda GroupStyle egenskapen eller GroupStyleSelector . Om du vill ange visualiseringen av dataobjekten ItemTemplate använder du egenskapen eller ItemTemplateSelector . Mer information finns i Översikt över dataöverläggning.

Information om beroendeegenskap

Objekt Value
Identifierarfält ItemsPanelProperty
Metadataegenskaper inställda på true Ingen

Gäller för