我想编写一个程序,使用户能够绘制几何形状,如圆形、三角形、矩形等。
我还希望能够拖放或调整大小/移动以前绘制的形状。
- 我想在 Panel 中绘制形状。看起来合理吗?
- 我画了一个圆之后,它就变成了位图的一部分。当然,我确实将圈子的详细信息保存在其他一些对象中。
但我不明白的是如何实现以下内容:
当鼠标悬停在圆上时,圆被选中,然后使用一些键使用户能够调整大小/移动它。
我怎么知道鼠标在圆上?
我是否需要检查鼠标坐标与所有圆像素坐标?
我正在寻找更简单的解决方案。
最佳答案
使用 WPF 图形和多媒体。 http://msdn.microsoft.com/en-us/library/ms752061.aspx
Windows Presentation Foundation (WPF) 包括对高质量 2-D 和 3-D 图形、动画和媒体的支持。图形平台的主要功能包括:
矢量图形支持。
硬件加速。
分辨率和设备无关的图形。
最小的屏幕重绘和集成动画系统。
它拥有您需要的一切 - 为什么要重新发明轮子?
您需要将对象本身保留为图形对象,这样它们才能响应鼠标悬停事件。一旦将它们放入位图中,您将不得不重新发明轮子。
例如,
这是形状对象:
http://msdn.microsoft.com/en-us/library/ms747393.aspx#shapes
这是 HitTest :
http://msdn.microsoft.com/en-us/library/ms752097.aspx
您还可以获得硬件加速、分辨率和独立于设备的图形的优势。我不认为你自己能够轻松实现它:)
关于c# - 需要建议 - 如何编写绘图程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980741/