Нужно приколоть .dll или что-то, чтобы изменить курсор мыши в WPF - PullRequest
0 голосов
/ 02 апреля 2010

Я пытаюсь переопределить курсор для всего компьютера this.Cursor = Cursors.Pen; System.Windows.Input.Mouse.OverrideCursor = Cursors.Pen;

Это работает в WPF "Окно", но нигде вне его.

Что .dll позволит мне сделать это?

1 Ответ

6 голосов
/ 02 апреля 2010

Такое поведение задумано и хорошо.

Посмотрите на стандартные процедуры, такие как SetCursor , и вы увидите это:

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

Вы не должны пытаться переопределить курсор для других приложений. Это плохой гражданин в системе. Пока ваше приложение активно или у вас есть ввод мыши с помощью захвата окна, курсор, установленный с помощью Mouse.OverrideCursor, будет оставаться активным.


Учитывая, что вы действительно не заботитесь о хорошей игре, вы всегда можете сделать все возможное, чтобы ваша программа взяла на себя управление системой. Просто запустите главное окно как полноэкранное приложение с окном над каждым монитором в системе и установите для всех них значение Topmost. Установите курсор, и мышь никогда не покинет окно.

Пока вы занимаетесь этим, вам следует подумать о том, чтобы загрузить кучу этих симпатичных изображений единорога со страницы StackOverflow Users и выложить на них фон окон. Это действительно добавит хороший, тонкий эффект на рабочий стол пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...