Я пишу систему перетаскивания для визуализатора.Когда вы нажимаете и перетаскиваете, он перемещает то, что вы видите в окне.Когда мышь ударяется о край панели, я начинаю перемещать курсор, чтобы он никогда не покидал поле.Он отслеживает виртуальную позицию, в которой был бы курсор, если бы он был внутри поля.Эта часть кода работает нормально.
Каждый раз, когда происходит событие MouseMoved и позиция находится внутри поля, я делаю Cursor.Show ().Если это вне коробки, я делаю Cursor.Hide ().Когда пользователь отпускает кнопку мыши, я делаю Cursor.Show ().
Есть несколько проблем.Когда происходит первый вызов Hide, он не скрывается.Я должен получить виртуальную позицию курсора за пределами содержащего окна, чтобы скрытие произошло.Когда я возвращаюсь назад, он не становится видимым, хотя вызывается «Шоу».Наконец, при отпускании кнопки мыши курсор не появляется, несмотря на то, что вызывается Show.
Вместо того, чтобы просить людей отлаживать мой код, мне просто интересно, что происходит в системе событий, которая делает Cursor.Hide/ Показать не так, как я ожидаю.У меня сложилось впечатление, что если элемент управления называется Hide, курсор будет скрыт всякий раз, когда он находится внутри этого элемента управления;аналогично, если я позвоню в шоу из Control.