2009-03-19 11 views
2

J'ai une bordure à l'intérieur d'un canevas. La hauteur/largeur du Border varie en fonction de son contenu. Je veux que la bordure s'étende pour remplir toute la toile. Comment puis je faire ça?WPF - Comment ancrer une bordure sur un canevas?

J'ai essayé sur la frontière sans succès:

Height="{Binding ElementName=MainCanvas, Path=Height}" 
Width="{Binding ElementName=MainCanvas, Path=Width}" 
+1

Ensuite, vous n'auriez même pas à faire la liaison supplémentaire. –

Répondre

8

Est-ce que la toile ont une hauteur explicite/largeur? Il peut s'agir d'un dimensionnement automatique et d'une hauteur/largeur de double.NaN.

Essayez lier la hauteur enfant/largeur à la ActualHeight et ActualWidth de toile comme ceci:

Height="{Binding ElementName=MainCanvas, Path=ActualHeight}" 
Width="{Binding ElementName=MainCanvas, Path=ActualWidth}" 

panneaux de toile ne disent jamais les enfants à la taille par rapport à leur taille, même lorsque les enfants sont mis à HorizontalAlignment.Stretch (ou vertical). Donc, la liaison est une bonne solution ici. Pourquoi ne pas simplement mettre le canevas à l'intérieur de la bordure?

+0

Merci beaucoup Josh! J'avais besoin d'ActualHeight/ActualWidth par opposition à Height/Width. –