Dites que j'ai deux éléments dans une fenêtre.
Je voudrais élément A pour remplir tout espace vertcial inutilisé et avoir toujours au moins par exemple. 200px hauteur.
L'élément B aura peu de tailles fixes (expander) et il devrait être donné l'espace qu'il exige (mais laissant au moins 200px pour A). S'il n'y a pas assez d'espace libre dans une fenêtre, B devrait être défilable.WPF layout devinette
C'est proche de ce que je ne veux pas faire, mais DockPanel ne respecte pas la propriété MinHeight.
<DockPanel>
<ScrollViewer DockPanel.Dock="Bottom">
<B/>
</ScrollViewer>
<A MinHeight="200"/>
</DockPanel>
Y at-il un moyen de le faire en utilisant des panneaux natifs WPF?
Cela ne fonctionnerait pas. Cela ne correspond pas à l'exigence d'origine "S'il n'y a pas assez d'espace libre dans une fenêtre, B devrait être défilable". Lorsque vous définissez Hauteur sur Auto, Grid vous donne la taille que vous souhaitez. ScrollViewer n'aura donc jamais de barres de défilement tant que vous n'aurez pas durci sa hauteur. – Anvaka
Comme Anvaka l'a dit, ça ne marchera pas. –
Vous avez raison, la deuxième rangée sera en dessous de la fenêtre contenant. Il ne semble pas y avoir un moyen de dire "Auto, mais seulement s'il y a assez de place" Je suppose que vous aurez besoin de code pour le faire (panneau de disposition personnalisé, ou attacher à un gestionnaire d'événements et définir la taille explicitement) – Daniel