Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2014, 13:52   #1
[CYBOR]
 
Регистрация: 28.09.2014
Сообщений: 5
Вопрос Как определить, пересекаются ли элементы управления?

Как определить, пересекаются ли элементы управления WPF ?
[CYBOR] вне форума Ответить с цитированием
Старый 28.09.2014, 14:22   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Получить их координаты и проверить, не пересекаются ли они.
Всегда ваш, К.О.
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 29.09.2014, 07:06   #3
[CYBOR]
 
Регистрация: 28.09.2014
Сообщений: 5
По умолчанию

В том то и дело,что в WPF у контролов нет координат. Есть только Margin и Size.
[CYBOR] вне форума Ответить с цитированием
Старый 29.09.2014, 10:31   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Допустим, у нас есть приложение WPF, в котором на окне "MyWindow" расположен элемент "MyElement". Если в коде вызвать метод "TransformToAncestor(someOtherEleme nt)" у нашего "MyElement", то на выходе мы получим MatrixTransform, в OffsetX и OffsetY которого будут записаны координаты "MyElement'a" относительно "someOtherElement". Теперь от теории к практике:

Код:
MatrixTransform transform = (MatrixTransform)MyElement.TransformToAncestor(MyWindow);
double x = transform.Value.OffsetX;
double y = transform.Value.OffsetY;
Вот так мы получили координаты MyElement относительно MyWindow.
Прелесть метода в том, что получить координаты компонента можно относительно любого другого компонента, не обязательно относительно окна.

P.S. если координат у контролов нет в явном виде, то это не значит, что их нет вообще и никак не узнать
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#.Определить функцию, которая выясняет, пересекаются ли две фигуры Tomogochi Общие вопросы .NET 12 26.10.2015 00:30
Язык Pascal. Определить, пересекаются ли линии Avengerone Помощь студентам 2 26.05.2014 21:11
Как запретить выводить на печать элементы управления Nuta Microsoft Office Word 5 27.07.2009 19:55
как создать элементы управления в Word на VBA??? Генерал_Касетр Помощь студентам 0 15.06.2009 17:35
Как спрятать элементы управления NikolayGVB Microsoft Office Excel 2 22.01.2009 03:15