2017-09-28 5 views
0

Je sais que les fenêtres WPF ont la propriété 'SizeToContent' et ça marche très bien et c'est presque ce que je veux dans ce cas. Cependant ce que j'ai est légèrement différent. J'ai une fenêtre qui contient du contenu général et je veux que la taille soit automatique à la hauteur de ce contenu. Set SizeToContet = "Hauteur" ... jusqu'ici tout va bien.WPF Window Taille à ... la plupart du contenu?

Cependant, j'ai aussi un élément graphique qui est derrière le contenu principal et conçu pour aller dans le coin inférieur gauche. Cette fenêtre peut être courte, dans certains cas, le graphique est plus grand que le contenu principal; dans ce cas, je voudrais qu'il clipse le graphique à la hauteur du contenu principal. Cependant, avec SizeToContent, il voit le graphique comme faisant partie du contenu (ce qui est compréhensible) et ne laissera pas la fenêtre aller plus courte que cela.

Existe-t-il un moyen de dire qu'un élément spécifique doit être ignoré lors du calcul de la taille SizeToContent?

+1

Mettez l'élément dans une toile? – shadow32

+0

Intéressant, je ne savais pas que la toile ne contribuerait pas à ça ... Cependant la toile semble toujours la justifier, alors quand elle devient plus courte, elle garde le haut du graphique sur le bord supérieur de la fenêtre et coupe le bas; J'espérais le contraire mais très bon. – sfaust

Répondre

0

Ok Je pense avoir trouvé quelque chose qui fonctionnera. La Background propriété des éléments d'interface utilisateur ne contribuent pas à ce calcul, il semble, donc ce que je fini par faire est de mettre un fond ImageBrush sur la grille principale comme ceci:

<Grid.Background> 
     <ImageBrush ImageSource="Images/Gfx_UICorner_NoLogo.png" AlignmentX="Left" AlignmentY="Bottom" Stretch="None" /> 
    </Grid.Background> 

Faire cela aligner correctement à gauche en bas et cela ne contribuera pas à calculer la taille désirée de la fenêtre, donc les fenêtres courtes couperont alors le dessus comme je le cherchais.

Merci à this thread pour moi pointant dans la bonne direction ...