J'utilise WinForms depuis le premier framework introduit et y investis beaucoup de temps et d'efforts. Maintenant, j'essaie de passer à WPF et, honnêtement, ce n'est pas si facile.Contrôle de positionnement et de reliure
Maintenant, j'ai une tâche, j'ai besoin de mettre en œuvre un assistant simple, dont chaque page a un groupe de contrôles aligné au centre. Le groupe contient un ensemble de boutons, quatre boutons d'affilée. La largeur du groupe est constante, la hauteur est variable - cela dépend du nombre de boutons à l'intérieur.
C'est une tâche simple pour WinForms, mais je ne sais pas comment le faire en utilisant XAML. J'ai trois questions:
1). Évidemment, les boutons à l'intérieur d'un groupe sont un WrapPanel qui est placé dans une cellule de Grid. C'est simple. Mais comment calculer la hauteur du WrapPanel ne pas utiliser le code derrière?
2). Quelle est la méthode recommandée pour implémenter l'assistant? Modèle de données ou une sorte de Tab Control? Je devrai probablement avoir des effets de transition lors du changement de page.
3). Est-il acceptable dans le monde WPF d'utiliser la liaison comme un moyen de repositionner les contrôles?
Merci d'avance!
Merci Alex! Je suis familier avec MVVM donc je ne serai pas un problème. Mais je ne comprends toujours pas comment positionner le WrapPanel: s'il est placé dans la cellule d'un Grid, alors il a fixé la hauteur == height de la cellule de la grille. –
En fait, il aura seulement une hauteur fixe si vous le définissez comme tel. Si elle est contenue dans une cellule de la grille et nécessite plus d'espace (vous y ajoutez plus d'éléments), elle demandera plus d'espace et de mise en page; Si le parent refuse la demande d'espace supplémentaire, il sera plafonné au maximum autorisé par le parent. Tout cela est compliqué par un grand nombre de propriétés que vous pouvez définir, telles que les alignements horizontaux et verticaux, l'étirement, les scrolls, etc. et les sous-règles de disposition intégrées dans chaque contrôle. Cependant, si vous jouez dans le concepteur pendant un certain temps tout cela devrait devenir assez évident. –
Merci, Alex! Tu as beaucoup aidé! –