| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Получение размера Popup окна |
| Автор: SAVe 9.4.2009, 17:39 | ||||||
| Здравствуйте. Суть проблемы: Есть Popup окно контент в которое записывается динамически. Затем делаем ему IsOpen = true. Но в событии Popup_Opened размеры ActualWidth и ActualHeight показвают 0. Хотя окно отображается с правильными размерами. Где то же они находятся. Подскажите пожалуста как их получить. Получить нужно или до открытия окна (как либо высчитать) или сразу поле открытия окна. Вот разметка:
В коде перед открытием окна:
Пробуем получать размеры:
|
| Автор: Человек01 9.4.2009, 17:52 | ||
Может немного не понял сам вопрос, но а если сделать так:
По сути получается те же высота и ширина Popup, исходя из кода конечно. Или я всё таки, что то не так понял? |
| Автор: SAVe 10.4.2009, 16:05 |
| Дело в том что у всех контролов и выше и ниже по иерархии в событии Popup_Opened параметры ActualWidth и ActualHeight равны 0. |
| Автор: Человек01 12.4.2009, 19:19 | ||||||||
| SAVe, если честно то я так и не смог воспроизвести чтобы не было возможности узнать ширину высоту по bounds Вот весь код который я сделал для примера: Сначала UserControl1:
Теперь же сам Window1:
Всё замечательно работает. Странно что у тебя не получается... В общем пользуемся и говорим Человеку спасибо P.S.: Может у тебя там ещё, что то накручено в UserControl? |
| Автор: SAVe 12.4.2009, 22:37 |
| Человеку большое спасибо за участие в теме. Отличие моей ситуациии от приведенного кода состоит в том что наполнение которое ложится в bounds.Child создаётся не кодом контрола , а передаётся как параметр и сам Popup стартует из другого потока (по таймеру). Не знаю как это могло повлиять , но в событии Popup_Opened размеры нулевые (хотя они были и при синхронном старте нулевые). Проблему удалось решить перехватом SizeChanged у bounds. |
| Автор: Idsa 13.4.2009, 05:44 |
Человек01, добрый совет: не стоит так акцентировать внимание общественности на своей личности. |
| Автор: Человек01 13.4.2009, 10:17 |
| Idsa, спасибо за "добрый совет", но человек используемый мной является собирательным "образом" него абстрактного человека, таким выражением я призываю людей быть вежливыми и не забывать говорить спасибо всем кто им помог, пытался помочь или помогал советом. А непосредственно "акцентировать внимание общественности на своей личности" я не старался(по какому то случайному, но счастливому, стечению обстоятельств мой ник Человек01 и Человек используемый в контексте моего поста однокоренные И вообще с другой стороны, почему нет, если это я делаю для своего удовольствия и мне нравится видеть слово "Спасибо" после моего поста (приходит осознание что время потраченное мной, не было потрачено зря, а принесло пользу кому то). Так что по моему Ваш "наезд" не обоснован(+ ни каких правил форума я этим не нарушаю P.S.: Понимаю что это флуд, но давно не общался с людьми, так что прошу прощения за излишнюю многословность. |
| Автор: Idsa 13.4.2009, 10:27 |
| Если человек захочет сказать Вам спасибо, он это обязательно сделает. А попрошайничать, имхо, не стоит. |