是否有可能以及如何拖放GDI对象?

时间:2010-09-19 08:02:37

标签: c# winforms

我在这里找到了这个模拟时钟教程:

http://www.codeproject.com/KB/selection/AnalogClockControl.aspx

现在可以拖放手动小时(如何在手动小时检测鼠标?)并在拖动时显示此手动小时?

我的意思是.NET中没有任何包含框架的东西,它允许我检测到鼠标是否像IPHONE sdk那样形状?

3 个答案:

答案 0 :(得分:2)

我建议你使用所谓的“Rx”:反应性扩展,你想要的就是没有它,但Rx让你的生活变得更好更容易:)

有一个用于.NET的Rx和用于Javascript的Rx,相同的东西,你可以在任何你想要的地方使用类似的技术。

这是一个很好的视频如何使用.NET中的Rx(本例中为WPF)进行拖放操作,即使你做了其他事情(winforms,silverlight,javascript) - 无论如何都要看这个视频,它会给你其他一切的想法和实现完全相同: http://channel9.msdn.com/blogs/j.van.gogh/writing-your-first-rx-application

这是使用Rx描述的特定于javascript的拖放操作: http://weblogs.asp.net/podwysocki/archive/2010/03/19/introduction-to-the-reactive-extensions-for-javascript-drag-and-drop.aspx

答案 1 :(得分:2)

如果使用GraphicsPath类绘制手,则可以执行此操作。它的IsVisible()方法允许您在MouseDown事件中实现命中测试,并检测鼠标是否在手上。

答案 2 :(得分:1)

您需要处理MouseDown,MouseMove和MouseUp事件。

此外,您可以从时钟中分解xy的时间函数并编写逆xy-to-time版本。