Как получить ширину сетки для свойства, измененного в WPF - PullRequest
1 голос
/ 12 февраля 2010

Я хотел бы получить Grid фактический Width (или Height) и отобразить его в текстовом поле, но ширина / высота должна быть "живой", когда я изменяю размер окна, которое я хочу увидеть новые размеры.

Как мне это сделать?

Обновление:

Что касается Ответ Мэтта :

Это прекрасно работает, но теперь я хотел бы пойти на шаг дальше.

Мне нужна фактическая ширина в переменной для целей тестирования, таких как установка некоторых операторов if или масштабирование других объектов в сетке.

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 12 февраля 2010
<Grid x:Name="myGrid">...</Grid>

<TextBox Text="{Binding ActualWidth,ElementName=myGrid}" />

(TextBox, конечно, может быть внутри Grid.)

Хитрость в том, что Width указывает только начальную ширину элемента управления. ActualWidth - это «живое» свойство, к которому следует привязаться.

0 голосов
/ 23 января 2011

Чтобы ответить на ваш второй набор вопросов:

Вы можете добавить DependencyProperty к Window и связать его с ActualHeight Grid таким же образом, как было привязано свойство Text TextBox.

Также возможно связать другие свойства других элементов управления с ActualHeight из Grid. Если вам нужен промежуточный расчет, используйте ValueConverter, чтобы изменить значение на то, что вам нужно.

...