我有一个wpf应用程序在画布上有一些形状我希望允许用户点击一个形状,然后形状卡住鼠标直到再次点击。
到目前为止,我对WPF知之甚少,所以对我很轻松;)
答案 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