![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Как определить позицию контрола относительно экрана?
Нужно создать окошко с позицией на 26 пикселей ниже объекта, на котором кликнули.... |
|||
|
||||
Kefir |
|
|||
«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. возможно он больше подойдёт под твои нужды (не надо делать новых окон, а также можно без проблем выставить положение относительно родителя). |
|||
|
||||
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
аа.. точно! спасибо!
теперь вот никак не допру - как сделать так, чтобы при нажатии где то за пределами - оно закрывалось? пытался заюзать Mouse.PreviewMouseUpOutsideCapturedElement событие - не работает... |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
если ты о Popup - то просто поставь StaysOpen = false (оно по дефолту true).
если ты о Window - закрывай его на потере фокуса. |
|||
|
||||
MrCherry |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 31.5.2006 Репутация: нет Всего: нет |
Спасибо, работает. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |