Как мне «прилепить» фигуру к мышке в WPF? - PullRequest
0 голосов
/ 10 февраля 2009

У меня есть приложение wpf, у которого есть несколько фигур на холсте. Я хочу, чтобы пользователь нажимал на фигуру, а затем эта фигура застревает в мышке, пока они не щелкают снова.

Пока что я очень мало знаю о WPF, так что будьте спокойны со мной;)

Ответы [ 2 ]

0 голосов
/ 10 февраля 2009

Проверить эту тему - http://silverlight.net/forums/t/68889.aspx

Поскольку ваша 'Stick' находится на Canvas, продолжайте устанавливать Canvas.Left и Canvas.Top для MouseMove с помощью MousePositions

0 голосов
/ 10 февраля 2009

Надеюсь, это то, что вы ищете.

"Логика перетаскивания мыши довольно проста: в обработчике OnMouseDown вы сохраняете положение объекта, который вы хотите перетащить, и указателя мыши, и вызываете CaptureMouse. В OnMouseMove вы вычисляете разницу между координатами текущая позиция указателя мыши и сохраненная позиция, и добавьте ее к исходной позиции объекта. (Если вы находитесь на Canvas, вы можете переместить объект, вызвав Canvas.SetLeft и Canvas.SetTop для объекта; в противном случае вы можете настроить Для объекта TranslateTransform задано свойство объекта RenderTransform.) В OnMouseUp вызывается ReleaseCapture.

Поскольку ваше приложение может потерять захват мыши другими способами (например, появление системного модального окна сообщения), вы также захотите переопределить OnLostMouseCapture, чтобы прервать операцию перетаскивания (если оно не завершено с помощью OnMouseUp) и выполнить очистку. Вы также можете переопределить OnTextInput, чтобы прервать перетаскивание, если пользователь нажмет клавишу Escape. "

Скопировано с http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b6c51eef-269e-4c85-96af-b5b1e4cb9bd5/. На этом сайте также есть код для того, как это сделать.

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