Мне нужно реализовать курсор с некоторыми очень специфическими особенностями:
- он должен быть анимирован
- , потому что через n секунд он автоматически щелкает - поэтому анимация является обратной связью дляпользователь, когда произойдет щелчок
- , он должен привязаться к некоторым нашим элементам управления
- он должен работать вне нашего приложения
до сих пор подходы:
- рендеринг моего WPF-элемента управления в растровое изображение, создание структуры курсора из него и использование user32.dll / SetSystemCursor для его установки
- PRO
- курсор не имеет задержки после мыши, так как он является реальным курсором
- CON
- привязка довольно трудна, тем более что мыиметь абсолютные и относительные устройства ввода, и мне придется все время сбрасывать положение мыши или использовать user32.dll / ClipCursor (System.Windows.Forms.Cursor.Clip делает то же самое), но привязанный курсор всегда трясется вокруг привязанной позиции (пытаетсяубежать, получить перезагрузкуain ....)
- код, который я использую, выдает странные исключения через некоторое случайное время, поэтому мой текущий код выглядит довольно нестабильным
- рендеринг моего собственного курсора в максимизированном видесамый верхний, allowtransparent, windowstyle = none, невидимое окно и вручную переместите курсор после мыши (например, Canvas.SetLeft (cursor, MousePosition.X))
- PRO
- привязка может быть (легко) сделана
- CON
- , когда мышь щелкает и нажимает на курсор, курсор нажимается, а не окно за
- мне не очень красиво опрашивать расположение мыши в фоновом цикле диспетчера
для решения второго подхода мой курсор должен иметь хотя бы одинпрозрачный пиксель в точке доступа, так что мышь может щелкнуть ... это не кажется мне реальным решением ...
кто-нибудь знает кого-нибудь?
РЕДАКТИРОВАТЬ: какой-то примеристочник, чтобы показать проблемы ...:
example app & source, чтобы показать проблему с привязкой мыши к фиксированному положению: ClipIt.rar
пример приложения и источника, который выходит из строя по истечении случайного времени - установка самостоятельно нарисованного курсора: TryOwnCur.rar
можно найти под: http://sourcemonk.com/Cursor