Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить позицию контрола на экране? Нужно создать окошко.. 
V
    Опции темы
MrCherry
Дата 5.8.2008, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 31.5.2006

Репутация: нет
Всего: нет



Как определить позицию контрола относительно экрана?
Нужно создать окошко с позицией на 26 пикселей ниже объекта, на котором кликнули....
PM MAIL   Вверх
Kefir
Дата 6.8.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 22
Всего: 87



WindowStartupLocation
+
VisualTreeHelper.GetOffset (это локейшн визуала относительно парента)
Visual.TransformToAncestor (это локешн относительно предка)

так вот, схема проста, определяешь координаты контрола относительно окна (TransformToAncestor), получаешь координаты окна на десктопе и вычисляешь координаты контрола относительно десктопа. потом вычисляешь координаты для нового окна (например если на 26 пикселей ниже контрола - window_y = control_y + control.ActualHeight + 26, где control_y это координата y контрола относительно десктопа. ну а window_x будет control_x)

не знаю зачем это надо, но на всякий случай - обрати внимание на такой контрол как Popup. возможно он больше подойдёт под твои нужды (не надо делать новых окон, а также можно без проблем выставить положение относительно родителя).
PM MAIL WWW Skype   Вверх
MrCherry
Дата 6.8.2008, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 31.5.2006

Репутация: нет
Всего: нет



аа.. точно! спасибо!

теперь вот никак не допру - как сделать так, чтобы при нажатии где то за пределами - оно закрывалось?
пытался заюзать Mouse.PreviewMouseUpOutsideCapturedElement событие - не работает...
PM MAIL   Вверх
Kefir
Дата 7.8.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 22
Всего: 87



если ты о Popup - то просто поставь StaysOpen = false (оно по дефолту true).
если ты о Window - закрывай его на потере фокуса.
PM MAIL WWW Skype   Вверх
MrCherry
Дата 7.8.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 31.5.2006

Репутация: нет
Всего: нет



Цитата

если ты о Popup - то просто поставь StaysOpen = false (оно по дефолту true).

Спасибо, работает.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.