如何在WPF中“粘贴”鼠标形状?

时间:2009-02-10 20:15:29

标签: c# wpf

我有一个wpf应用程序在画布上有一些形状我希望允许用户点击一个形状,然后形状卡住鼠标直到再次点击。

到目前为止,我对WPF知之甚少,所以对我很轻松;)

2 个答案:

答案 0 :(得分:0)

希望这就是你要找的东西。

“鼠标拖动逻辑非常简单:在OnMouseDown处理程序中,您保存要拖动的对象和鼠标指针的位置,然后调用CaptureMouse。在OnMouseMove中,您计算​​的坐标之间的差异当前鼠标指针位置和保存位置,并将其添加到原始对象位置。(如果您在Canvas上,可以通过为对象调用Canvas.SetLeft和Canvas.SetTop来移动对象;否则您可以调整TranslateTransform对象设置为对象的RenderTransform属性。)在OnMouseUp中,您调用ReleaseCapture。

因为您的应用程序可能会以其他方式丢失鼠标捕获(例如系统模式消息框的外观),您还需要重写OnLostMouseCapture以中止拖动操作(如果它没有以OnMouseUp终止)并执行清理。如果用户按下Esc键,您可能还想覆盖OnTextInput以中止拖动。“

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b6c51eef-269e-4c85-96af-b5b1e4cb9bd5/复制,此网站上还有代码,以了解如何操作。

答案 1 :(得分:0)

查看此主题 - http://silverlight.net/forums/t/68889.aspx

由于你的'Stick'在画布上,请继续使用MousePositions在MouseMove上设置Canvas.Left和Canvas.Top