Как я могу получить размер окна WPF с автоматическими размерами? - PullRequest
3 голосов
/ 19 сентября 2010

У меня есть окно, которое автоматически масштабируется вокруг его содержимого. Для анимации нужны ширина и высота. ActualWidth всегда является максимальной шириной окна, свойства Width и Height говорят NaN.

Ответы [ 3 ]

2 голосов
/ 21 октября 2011

Вы можете использовать метод WindowL UpdateLayout () для проверки ActualWidth и ActualHeight.

2 голосов
/ 20 сентября 2010

ActualWidth / ActualHeight даст вам фактические размеры окна - заданные системой макетов, которая основана на фактической визуализации окна.Это должны быть размеры, которые вы ищете.Однако, может быть небольшая задержка в расчете, так как он основан на рендеринге, поэтому, если они ошибочны, я думаю, они еще не рассчитаны - и у вас есть условие гонки. Вы можете узнать больше об этом в ссылкахвыше, где есть некоторые важные замечания о том, когда рассчитываются фактические размеры и, следовательно, почему они могут быть отложены.

Ширина / Высота - запрашиваемые размеры, и если они не установлены явно, они будут содержать значения по умолчанию, равные Double.NaN.

0 голосов
/ 20 сентября 2010

По возможности вы должны использовать ScaleTransform вместо изменения значений Height и Width при анимации изменения размера. Это не только может помочь с производительностью, но также позволяет обойти такие проблемы, поскольку вместо установки определенного значения размера, которое вы, возможно, не знаете, значения масштаба задаются в процентах.

...