【发布时间】:2009-11-14 01:16:14
【问题描述】:
我正在编写一个应用程序,在该应用程序中,我使用如下代码在 System.Windows.Forms.Panel 上显示 System.Drawing.Icon 对象:
Graphics g = _panel.CreateGraphics();
g.DrawIcon(this.NodeIcon, _rectangle);
我有代码可以使用拖放来移动图标。 我的问题是,当用户移动图标时,它一点也不流畅。 在用户停止移动图标之前,图标看起来会变形。
我试图在网上找到这方面的信息,但我无法让它顺利进行。 我以前对这种特殊类型的编码(使用图形)几乎没有经验,所以我是这方面的新手。
如果有好心人能帮我一些提示,将不胜感激。
提前致谢!
【问题讨论】:
-
我也不知道,好像在拖拽的时候,正在重绘算法,效率不高。
-
我想你也遇到过类似的问题?
-
@Freddy:不是真的,这是我的预感:P
-
当我阅读“拖放”时,它具有非常具体的含义,但是,当我阅读您的问题时,我认为您指的是在面板周围移动图形元素,而不是“插入”图标到面板内的控件中,或将其移到某些控件之外的面板表面本身。也许您可以明确说明您在做什么,如何在图标上实现“命中检测”。另外:只是拖动带有图标的图片框是使用 MouseDown、MouseUp 和 MouseMove 的标准覆盖的选项吗?希望这些 cmets 有帮助,最好,
-
一般来说,您不应该将 CreateGraphics 返回的 Graphics 对象用于文本测量 (Graphics.MeasureString) 之外的任何内容。渲染应该在 OnPaint 中进行。
标签: c# winforms .net-3.5 graphics