2010-03-15 4 views
5

Vu divers exemples d'applications WPF J'ai vu l'utilisation du contrôle Grid pour presque tout, même les choses les plus simples avec seulement 1 colonne ou ligne.WPF: Pourquoi tout l'amour pour le contrôle Grid?

De plus, les modèles WPF commencent par une grille vide.

Pour moi, en utilisant StackPanel ou DockPanel est moins bavard et sont meilleurs pour l'entretien (pensez ajout d'une ligne plus tard et d'avoir à ajouter +1 à toutes les autres lignes)

Pourquoi est Grid mieux ou ce que je suis absent ?

Répondre

2

Je pense qu'une partie de la raison pour laquelle Grid est l'élément par défaut est qu'il est (légèrement) plus convivial. Avec une grille, il n'y a aucune restriction à avoir plusieurs éléments dans une seule "cellule" de grille, ce qui permet à un concepteur ayant le même placement d'avoir la même flexibilité qu'un canevas, tout en conservant les capacités de mise en page automatique. et les autres contrôles de mise en page plus agréable comme StackPanel et DockPanel) contient.

1

ne manque rien. J'ai beaucoup de grilles dans mes applications, mais pas nécessairement comme élément de haut niveau et certainement pas dans la mesure que vous décrivez.

Pourrait être beaucoup de gens ne réalisent pas qu'ils peuvent supprimer la grille initiale, et à la place, ils mettent leur propre contrôle dans la grille.

1

J'ai trouvé que pour des fenêtres plus élaborées, il est plus facile de les décomposer en zones fonctionnelles qui sont assez indépendantes (mouvement et taille) des autres. Les grilles permettent à ces zones de coexister dans un seul panneau, et permettent de les positionner sans tenir compte de l'endroit où se trouvent les autres contrôles (dans une certaine mesure).

Par exemple dans un projet je suis working on right now, j'ai une fenêtre qui va être un gestionnaire d'expédition. Je veux trois vues de liste (expéditions, paquets, articles) J'ai un contrôle de grille avec deux colonnes; un avec la liste des paquets et un séparateur de grille, l'autre avec une grille imbriquée avec les deux autres listes et un séparateur de grille. J'ai vu de nombreux designers briser leur fenêtre dans des domaines comme celui-ci, et le faire avec autre chose qu'une grille ne fonctionne tout simplement pas, car il n'y a pas de "cellules" discrètes que les éléments vivent indirectement. Un bon nombre de programmes Windows prend cette conception et donc je suppose que quand ils ont eu une réunion et a demandé ce qui devrait être le panneau de conteneur par défaut, la grille était le choix basé sur ce fait.

Cory

3

Deux mots: Taille étoile. Le Grid permet de dimensionner le contenu dans l'espace qui le contient sans fournir explicitement une taille pour le conteneur. Les contrôles du panneau ne le font pas.

+1

D'accord, mais vous en avez seulement besoin parfois, pas toujours. Et vous pouvez généralement utiliser un DockPanel pour le même effet. –

+0

Pour un effet un peu similaire, peut-être. Mais si vous voulez diviser une fenêtre en deux, disons, vous ne pouvez pas vraiment faire cela avec un DockPanel. Non sans faire des choses que vous ne devriez probablement pas, comme la liaison à la propriété ActualSize du parent. –