@lucky_e3

Как узнать координаты мыши относительно Canvas (C# WPF)?

Как узнать координаты мыши относительно Canvas (C# WPF)?

e.GetPosition(null).X и e.GetPosition(null).Y; выдают координаты относительно формы (начиная с левого верхнего угла).

В моем случае есть Canvas, размеры которого превосходят форму. Нужно вывести координаты мыши на самом Canvas, от его левого верхнего угла...
  • Вопрос задан
  • 3875 просмотров
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C#
Espleth Касательно WinForms - можно обойтись без магических констант (которые неизбежно будут разные на разных операционках, с разными темами и с разыми DPI, т.е. одно и то же значение использовать в принципе невозможно), для этого есть ClientSize
lucky_e3 Касательно WPF - совершенно не понятно, почему вы в GetPosition передали null вместо вашей канвы: черным по белому написано https://msdn.microsoft.com/en-us/library/ms591423%... - возвращает позицию относительно указанного элемента. Canvas является FrameworkElement, поэтому и IInputElement тоже. Поэтому запросите позицию относительно канвы и не надо констант.
Ответ написан
@Espleth
Помню когда-то у меня была похожая проблема на winforms. Решал вычитая из координат мыши координату левого верхнего угла формы, как-то ее можно достать, но непомню как. Думаю вы найдете, там не проблема. Еще вычитал магическую константу по оси У, это нужно было, чтобы не считать верхнюю панельку приложения, ту, на которой расположено название и кнопки закрыть/свернуть.
Может, на wpf как-то иначе, или я костыльно делал, но если что так должно прокатить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы