12
votes

Quoi de mieux dans WPF pour la mise en page UI, en utilisant une grille ou des grilles imbriquées

Je fais une interface utilisateur dans WPF, j'ai un tas de zones fonctionnelles et j'utilise une grille pour l'organiser.

La grille que je veux n'est pas uniforme, comme dans, une zone fonctionnelle parcourra plusieurs cellules dans la grille. Je me demandais quelle est la meilleure pratique de résoudre ce problème. Devrais-je créer une grille puis pour chaque zone fonctionnelle, définissez-la à plusieurs cellules ou devriez-je diviser en plusieurs grilles imbriquées.

dans cette image, le panneau le plus à gauche (panneaux séparés par la barre grise ) Est ce que je veux. Le panneau central montre une grille où les lignes bleues sont chevauchées par une zone fonctionnelle. Le panneau le plus à droite montre comment je pourrais le faire avec des grilles imbriquées. Vous pouvez voir la grille verte a une scission horizontale. Dans la cellule inférieure, la grille jaune avec une fente verticale. Dans la côte, la cellule gauche est la grille rouge avec une scission horizontale. grilles http://www.freeImageHosting.net/uploads/08f2711bae.jpg

i Je me demandais simplement quelle est la meilleure pratique, le collège droit ou le panneau droit.

mise à jour: juste pour clarification, un exemple de "code" plus orienté ":

Le panneau central xxx

Le panneau droit: xxx

mise à jour: je dois admettre que maintenant que j'ai écrit le code des deux approches, le " SPAN "La solution semble beaucoup mieux.


0 commentaires

4 Réponses :


1
votes

J'ai peur de ne pouvoir distinguer vos solutions avec la couleur dans les différentes grilles et sous-grilles.

Ce que je peux vous conseiller, c'est créer un UserControl pour chaque zone fonctionnelle, puis disposez d'une grille pour organiser ces zones.

Chaque USERCONTROL est alors libre de créer sa propre mise en page (avec une autre grille, ou un stackPanel plus simple, ou autre) et est responsable d'afficher un sous-ensemble de données / manipuler des événements utilisateur dans sa propre zone.

La grille extérieure est ensuite un arbitre pour des objets qui impliquent plus d'une zone (par exemple, un transfert d'événement entre zones).


0 commentaires

2
votes

Je recommanderais de créer une grille principale divisée en zones fonctionnelles, puis créez des grilles / stackels distincts / etc. dans ces zones. Vous ne connaissez peut-être pas les exigences de chaque zone fonctionnelle. Vous pouvez donc organiser librement leurs éléments et changer de bettent les mises en page. Lorsque vous mettez tout dans une grille avec des colonnes et / ou des rangées de span, vous obtiendrez une disposition «difficile à gérer».


0 commentaires

4
votes

Je vais personnellement aller avec votre mise en page centrale à l'aide d'une seule grille avec colonne et rangée de rangée pour structurer la disposition globale de l'interface utilisateur, puis mettre un panneau dans chacune de ces sections pour contenir les commandes réelles (et une disposition détaillée détaillée). .


0 commentaires

1
votes

Franchement, je voudrais aller pour un quai ou comme celui-ci pour la composition de niveau supérieur et les grilles pour bas niveau


0 commentaires