Как изменить координаты мыши в пользовательском UserControl - PullRequest
0 голосов
/ 20 ноября 2018

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

Решение должно будет:

  1. захватить ввод движения мыши,
  2. отменить любую нормальнуюобрабатывая,
  3. измерьте расстояние по осям x и y, о котором сообщила мышь и которое обычно было бы просто добавлено к координатам указателя,
  4. сохраняют точную новую координату с плавающей точкой, затем
  5. в идеале скрыть указатель,
  6. перерисовать указатель в подпиксельных координатах, а
  7. сообщить приблизительные целочисленные координаты обратно операционной системе, чтобы он знал, когда указатель может покинуть элемент управления.

Что-то, что я заметил, это то, что Console.Writeline(), кажется, мешает Cursor.Position, предполагая, что опубликованное значение курсора включает также координаты текстового курсора.Это до сих пор усложняло мои решения.В общем, я думаю, что слишком поздно вмешиваюсь, чтобы иметь возможность влиять на мышь так, как я хотел бы, и принять решение, возможно, потребует более глубоких вызовов Windows.

...