Sdílet prostřednictvím


ItemsPanelTemplate Třída

Definice

Určuje panel, který ItemsPresenter vytvoří pro rozložení položek ItemsControl.

public ref class ItemsPanelTemplate : System::Windows::FrameworkTemplate
public class ItemsPanelTemplate : System.Windows.FrameworkTemplate
type ItemsPanelTemplate = class
    inherit FrameworkTemplate
Public Class ItemsPanelTemplate
Inherits FrameworkTemplate
Dědičnost

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šimněte si, že 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. Všimněte si, že vlastnost IsItemsHost je nastavena na true na StackPaneloznačující, ž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>

Příklad použití různých stylů a vlastností šablon v ItemsControlnajdete v tématu Přehled šablon dat.

Poznámky

ItemsPanelTemplate určuje panel, který se používá pro rozložení položek. GroupStyle má vlastnost Panel typu ItemsPanelTemplate. typy ItemsControl mají vlastnost ItemsPanel typu ItemsPanelTemplate.

Každý typ ItemsControl má výchozí ItemsPanelTemplate. Výchozí hodnota ItemsPanel třídy ItemsControl je ItemsPanelTemplate, která určuje StackPanel. Pro ListBoxpoužívá výchozí VirtualizingStackPanel. Pro MenuItempoužívá výchozí WrapPanel. Pro StatusBarpoužívá výchozí DockPanel.

Konstruktory

ItemsPanelTemplate()

Inicializuje instanci ItemsPanelTemplate třídy.

ItemsPanelTemplate(FrameworkElementFactory)

Inicializuje instanci ItemsPanelTemplate třídy se zadanou šablonou.

Vlastnosti

Dispatcher

Získá Dispatcher tento DispatcherObject je přidružen.

(Zděděno od DispatcherObject)
HasContent

Získá hodnotu, která označuje, zda tato šablona má optimalizovaný obsah.

(Zděděno od FrameworkTemplate)
IsSealed

Získá hodnotu, která označuje, zda tento objekt je v neměnném stavu, takže jej nelze změnit.

(Zděděno od FrameworkTemplate)
Resources

Získá nebo nastaví kolekci prostředků, které lze použít v oboru této šablony.

(Zděděno od FrameworkTemplate)
Template

Získá nebo nastaví odkaz na objekt, který zaznamenává nebo přehrává uzly XAML pro šablonu při definování nebo použití šablony zapisovačem.

(Zděděno od FrameworkTemplate)
VisualTree

Získá nebo nastaví kořenový uzel šablony.

(Zděděno od FrameworkTemplate)

Metody

CheckAccess()

Určuje, zda volající vlákno má přístup k této DispatcherObject.

(Zděděno od DispatcherObject)
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
FindName(String, FrameworkElement)

Vyhledá prvek přidružený k zadanému názvu definovanému v rámci této šablony.

(Zděděno od FrameworkTemplate)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
LoadContent()

Načte obsah šablony jako instanci objektu a vrátí kořenový prvek obsahu.

(Zděděno od FrameworkTemplate)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
RegisterName(String, Object)

Zaregistruje novou dvojici názvu nebo objektu do aktuálního oboru názvů.

(Zděděno od FrameworkTemplate)
Seal()

Uzamkne šablonu, aby ji nebylo možné změnit.

(Zděděno od FrameworkTemplate)
ShouldSerializeResources(XamlDesignerSerializationManager)

Vrátí hodnotu, která určuje, zda serializace procesy serializovat hodnotu Resources vlastnost instance této třídy.

(Zděděno od FrameworkTemplate)
ShouldSerializeVisualTree()

Vrátí hodnotu, která určuje, zda serializace procesy serializovat hodnotu VisualTree vlastnost instance této třídy.

(Zděděno od FrameworkTemplate)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
UnregisterName(String)

Odebere mapování názvu nebo objektu z oboru názvů XAML.

(Zděděno od FrameworkTemplate)
ValidateTemplatedParent(FrameworkElement)

Zkontroluje, že nadřazený objekt šablony není null ItemsPresenter objektu.

VerifyAccess()

Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject.

(Zděděno od DispatcherObject)

Explicitní implementace rozhraní

INameScope.FindName(String)

Vrátí objekt, který má zadaný název identifikace.

(Zděděno od FrameworkTemplate)
IQueryAmbient.IsAmbientPropertyAvailable(String)

Dotazuje, zda je zadaná okolí vlastnost k dispozici v aktuálním oboru.

(Zděděno od FrameworkTemplate)

Platí pro