[wpf] положение окна
От: Аноним  
Дата: 06.04.11 17:51
Оценка:
Окно нужно разместить по центру родителя. Когда габариты окна известны или layout заранее задан — проблем нет.
Проблема если окно сначала появляется на экране в минимальном варианте ( размер надписи Ждите идет загрузка ) и показывается( оно размещается как и нужно по центру ) , затем подгружается layout и засовывается в окно, окно становится уже большего размера, но его центровка уже не соответствует , т.к. координаты left, top расчитывались для минимального размера. Онекно получается как бы смещенным.
Если менять left, top на новые после загрузки , получается неприятный эффект прыжка.
Собственно как хочется сделать — после загрузки layout засовывается , но размер окна не должен меняться, нужно расчитать новый размер.
Затем запустить анимацию по переходу из мелкого размера в настоящий с видимым layout-ом. С анимацией может еще и справлюсь, а вот расчитать размер окна с учетом будущего скрытого контента — не понятно как.
Re: [wpf] положение окна
От: vit_as Россия  
Дата: 07.04.11 17:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Окно нужно разместить по центру родителя. Когда габариты окна известны или layout заранее задан — проблем нет.

А>Проблема если окно сначала появляется на экране в минимальном варианте ( размер надписи Ждите идет загрузка ) и показывается( оно размещается как и нужно по центру ) , затем подгружается layout и засовывается в окно, окно становится уже большего размера, но его центровка уже не соответствует , т.к. координаты left, top расчитывались для минимального размера. Онекно получается как бы смещенным.
А>Если менять left, top на новые после загрузки , получается неприятный эффект прыжка.
А>Собственно как хочется сделать — после загрузки layout засовывается , но размер окна не должен меняться, нужно расчитать новый размер.
А>Затем запустить анимацию по переходу из мелкого размера в настоящий с видимым layout-ом. С анимацией может еще и справлюсь, а вот расчитать размер окна с учетом будущего скрытого контента — не понятно как.

Попробуйте у дочернего элемента окна вызвать метод Measure()
По идеи после вызова у данного элемента будет определено свойство DesiredSize
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.