WPF — как прикрепить границу к холсту?

У меня есть граница внутри холста. Высота/ширина границы варьируются в зависимости от ее содержимого. Я хочу, чтобы граница растягивалась, чтобы заполнить весь холст. Как я могу это сделать?

Я пробовал это на границе без успеха:

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

person Gus Cavalcanti    schedule 19.03.2009    source источник
comment
Почему бы вам просто не поместить холст внутрь границы? Тогда вам даже не придется делать дополнительную привязку.   -  person Bryan Anderson    schedule 20.03.2009


Ответы (1)


Есть ли у холста явная высота/ширина? Это может быть автоматический размер и высота/ширина double.NaN.

Попробуйте привязать дочернюю высоту/ширину к ActualHeight и ActualWidth холста следующим образом:

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

Панели холста никогда не сообщают дочерним элементам размер относительно их размера, даже если для дочерних элементов установлено значение HorizontalAlignment.Stretch (или вертикальное). Таким образом, привязка является хорошим решением здесь.

person Josh G    schedule 19.03.2009
comment
Большое спасибо, Джош! Мне нужно было ActualHeight/ActualWidth, а не Height/Width. - person Gus Cavalcanti; 19.03.2009