7 votes

StackPanel WPF cadre vertical pleine hauteur

J'ai besoin de remplir l'espace vide avec le dernier élément dans le StackPanel (Frame) :

_mainFrame - remplir l'espace vide de _menu Frame jusqu'au bas

7voto

Viv Points 15531

StackPanel n'est pas le conteneur de mise en page permettant aux éléments de "remplir l'espace restant". StackPanel a un but spécifique parmi les autres conteneurs de mise en page. C'est pour "empiler" les éléments verticalement/horizontalement et fonctionne en fonction de la hauteur souhaitée de ses enfants plutôt que de ce qui est disponible. Il permettra à ses enfants d'obtenir autant d'espace qu'ils le désirent.

Pour votre besoin, vous voudriez opter pour soit un DockPanel/Grid. Ces deux contrôles permettraient au conteneur parent de "limiter" les dimensions de ses enfants en fonction de ce qui est disponible.

Dans votre exemple, vous avez déjà un DockPanel. Cependant, vous avez mis un StackPanel en tant qu'enfant et c'est le seul enfant ce qui n'a pas beaucoup de sens. Vous voulez essayer d'utiliser un conteneur de mise en page lorsque vous avez plus de 1 élément enfant à placer dans une mise en page. Dans ce cas, le StackPanel est le seul enfant du DockPanel.

Pour répondre à votre besoin en utilisant un DockPanel, vous pourriez faire comme suit :

DockPanel utilise par défaut LastChildFill="True" donc le deuxième élément dans la déclaration sera étiré pour remplir l'espace restant disponible ce qui est ce dont vous avez besoin. Si vous définissez cette propriété sur false, il ne l'étirera pas.

Pour faire la même chose avec un Grid:

Pour votre besoin, je préférerais opter pour le DockPanel, la méthode du Grid est juste quelque chose de bon à connaître et probablement à utiliser lorsque la situation l'exige.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X