2010-01-25 5 views
11

En HTML le contrôle de conteneur générique est un DIV. Il ne fait rien par lui-même, mais c'est un bon endroit pour accrocher des choses.WPF: Quel est le contrôle de conteneur générique?

De même dans WinForms, le contrôle de conteneur générique était le Panel. Encore une fois, c'est ce que je voudrais utiliser comme un endroit pour charger plus tard d'autres contrôles.

Que dois-je utiliser pour WPF?

Répondre

15

Certains des conteneurs les plus couramment utilisés sont les suivants:

Grid
StackPanel
DockPanel
WrapPanel
Canvas

Voir aussi MSDN Panels Overview.

+0

Pour ajouter à cela, tout dépend de ce que vous devez faire avec ces contrôles chargés plus tard. C'est à dire. quelle disposition ils devraient avoir, etc. Dans un de ces cas je suis allé avec une grille. Et DockPanel n'est probablement pas très bon si vous avez besoin de charger plusieurs contrôles. – Joey

+0

Dans ce cas, je veux aussi peu d'hypothèses que possible. Toute mise en page doit être prise en charge par le contol étant chargé, donc une seule restriction de contrôle a un sens. –

+0

Pas la réponse simple que je m'attendais, mais ce lien était une très bonne lecture. –

16

Je pense que la chose la plus proche de ce que vous cherchez est un ContentControl. Il ne possède pas de mise en page et n'a pas d'interface utilisateur par défaut (sauf si vous le modélisez pour faire l'un ou l'autre) mais peut prendre n'importe quel objet comme propriété Content (UIElement WPF ou autre) et fournir une interface utilisateur pour un objet CLR via un DataTemplate affecté à sa propriété ContentTemplate. À cet égard, il fournit un bon endroit pour injecter d'autres contenus (comme un div en HTML). Il s'agit également d'une classe de base pour la plupart des contrôles intégrés standard: Button, ListBoxItem, UserControl, Window.

panneaux WPF ne fonctionnent pas aussi bien pour les espaces réservés parce qu'ils ne peuvent pas être basés sur un modèle ou ont des enfants mis par les liaisons, à l'exception des cas où ils sont contenus dans d'autres contrôles qui gèrent l'injection contenu lié, comme le ItemsControl - ItemsPresenter-ItemsPanel relation.

Questions connexes