Как получить положение мыши относительно рабочего стола в WPF?

Проблема

Когда вы ищете такой вопрос с помощью Google, вы получаете много совпадений, но все решения предполагают, что у вас есть хотя бы одно окно.

Но мой вопрос в точности такой, как я его сформулировал - вовсе не предположения. У меня может быть окно, но может быть и ноль окон (потому что я даже не показывал одно или просто закрыл последнее). Короче говоря, решение не может полагаться ни на какой виджет или окно - известно только одно, есть ли рабочий стол (и приложение работает, но у него нет окон).

Итак, вопрос - как получить положение мыши?

Фон

Я хотел бы показать окна, центрированные по положению мыши. В WPF такого режима нет (есть только центр для владельца или центр для экрана), поэтому мне приходится делать это вручную. Отсутствует позиция мыши.

Правки

Спасибо всем, теперь у меня есть первая часть решения - исходная позиция. Теперь возникает проблема, как преобразовать данные для WPF. Нашел такую ​​тему: Теперь возникает проблема, как преобразовать данные для WPF. Нашел такую ​​тему: Теперь возникает проблема, как преобразовать данные для WPF. Нашел такую ​​тему: Пиксели WPF в пиксели рабочего стола но опять же, это предполагает наличие некоторого окна.

Затем я погуглил и нашел решение: http://jerryclin.wordpress.com/2007/11/13/creating-non-rectangular-windows-with-interop/

код включает класс для масштабирования координат вверх / вниз, полагающийся только на информацию о рабочем столе . Итак, объединив эти две части, я наконец получил решение :-). Еще раз спасибо.

7
задан Community 23 May 2017 в 10:28
поделиться