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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Координаты курсора относительно формы. Каким образом получить? 
V
    Опции темы
Wisdom
Дата 15.9.2010, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос в следующем. Как получить координаты курсора относительно формы?
Исходные данные: grid, на котором лежит Image. Обрабатываю событие MouseMove на grid'е. 
По идее, в wpf-приложениях, используется система координат с началом отсчета в центре экрана, если я все правильно понимаю. 
Пробовал получать координаты разными способами: e.GetPositon, Mouse.GetPosition(myimage),  Forms.Cursor.Position, image.PointToScreen\PointFromScreen. Во всех случаях возвращаются координаты курсора с началом отсчета в левом верхнем углу формы. Все бы ничего, но мне нужны именно координаты курсора относительно системы координат с началом отсчета в центре экрана, для того, чтобы коректно выполнять последующее рисование на форме.
Кто сталкивался с подобной ситуацией? Как решали вопрос?
Заранее благодарю за информацию.
PM MAIL   Вверх
CYBERDREAM
Дата 15.9.2010, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

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



http://msdn.microsoft.com/ru-ru/library/ms753347.aspx
Цитата

Система координат Windows Presentation Foundation (WPF) для двумерной графики начинается в левом верхнем углу области отображения (обычно областью отображения является экран).В двумерной системе положительные значения оси x откладываются вправо, а положительные значения оси y — сверху вниз


Цитата

Как получить координаты курсора относительно формы?

Цитата

мне нужны именно координаты курсора относительно системы координат с началом отсчета в центре экрана

так что тебе точно нужно?

Это сообщение отредактировал(а) CYBERDREAM - 15.9.2010, 09:34


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Wisdom
Дата 15.9.2010, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(CYBERDREAM @ 15.9.2010,  09:12)
так что тебе точно нужно?

"мне нужны именно координаты курсора относительно системы координат с началом отсчета в центре экрана"
Вот, что нужно smile
Спасибо за ссылку, счас почитаю.
PM MAIL   Вверх
CYBERDREAM
Дата 15.9.2010, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

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



ну тогда берешь мировую координату (в координатах экрана) и отнимаешься соответсвующие значения
Код

System.Windows.SystemParameters.PrimaryScreenWidth;//если моник один то этот вариант подойдет
System.Windows.SystemParameters.PrimaryScreenHeight;


var screenPoint=image.PointToScreen(e.Location)
screenPoint=new PointF(e.Location.X-System.Windows.SystemParameters.PrimaryScreenWidth/2,e.Location.Y-System.Windows.SystemParameters.PrimaryScreenHeight/2)


ну а если два монитора то, то нужно определять на каком находится форма твоя,
http://stackoverflow.com/questions/254197/...reen-dimensions


Это сообщение отредактировал(а) CYBERDREAM - 15.9.2010, 10:17


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
Wisdom
Дата 15.9.2010, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо за помощь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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