Aracılığıyla paylaş


ItemsControl.ItemsPanel Özellik

Tanım

Öğelerin düzenini denetleen paneli tanımlayan şablonu alır veya ayarlar.

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

Özellik Değeri

ItemsPanelTemplate Öğelerin düzeni için kullanılacak paneli tanımlayan bir. için ItemsControl varsayılan değer, öğesini belirten bir ItemsPanelTemplateStackPaneldeğeridir.

Öznitelikler

Örnekler

Yatay oluşturmak için, yatay ListBoxbelirten bir şablon StackPanel oluşturabilir ve bunu özelliği olarak ItemsPanel ayarlayabilirsiniz. Aşağıdaki örnekte, yatay ListBoxbir ListBoxStyle oluşturan bir gösterilmektedir.

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

Aşağıdaki örnek, yuvarlatılmış köşeleri olan bir yatay ListBox oluşturmak için bir ControlTemplate kullanır. Bu örnekte, önceki örnekte olduğu gibi özelliğini ayarlamak ItemsPanel yerine, içinde yatay StackPanel belirtilir ControlTemplate. IsItemsHost özelliği üzerinde StackPanelolarak ayarlanır true ve oluşturulan öğelerin panele gitmesi gerektiğini belirtir. Bu şekilde belirttiğinizde ItemsPanel , kullanmadan ControlTemplatedenetimin kullanıcısı tarafından değiştirilemez. Bu nedenle, bunu yalnızca panelin şablon kullanılmadan değiştirilmesini istemediğinizi biliyorsanız yapın.

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

Alternatif olarak, aynı sonuçları elde etmek için aşağıdakileri yapabilirsiniz. Bu durumda, ItemsPresenter tarafından belirtilenlere ItemsPanelTemplategöre öğelerin düzeni için panel oluşturulur.

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

Açıklamalar

ListBoxiçin, varsayılan ItemsPanelTemplate olarak öğesini VirtualizingStackPanelbelirtir. için MenuItem, varsayılan olarak kullanır WrapPanel. için StatusBar, varsayılan olarak kullanır DockPanel.

içindeki ItemsControlöğelerin düzenini etkilemek için bu özelliği kullanarak bir ItemsPanelTemplatebelirtirsiniz.

görsel ItemsControl özelleştirme için büyük esneklik sağlar ve birçok stil ve şablon oluşturma özelliği sağlar. Veri öğelerini içeren öğelerin görünümünü etkileyecek bir stil ayarlamak için özelliğini veya ItemContainerStyleSelector özelliğini kullanırsınızItemContainerStyle. Örneğin, için ListBoxoluşturulan kapsayıcılar denetimlerdir ListBoxItem ; için ComboBoxbunlar denetimlerdir ComboBoxItem . Denetiminizde gruplandırma kullanıyorsanız veya GroupStyleSelector özelliğini kullanabilirsinizGroupStyle. Veri nesnelerinin görselleştirmesini belirtmek için veya ItemTemplateSelector özelliğini kullanınItemTemplate. Daha fazla bilgi için bkz. Veri Şablon oluşturmaya genel bakış.

Bağımlılık Özelliği Bilgileri

Öğe Değer
Tanımlayıcı alanı ItemsPanelProperty
Meta veri özellikleri olarak ayarlandı true Hiç kimse

Şunlara uygulanır