Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#winforms中是否有其他绘图图像?_C#_Winforms_Drawimage_Onpaint - Fatal编程技术网

在C#winforms中是否有其他绘图图像?

在C#winforms中是否有其他绘图图像?,c#,winforms,drawimage,onpaint,C#,Winforms,Drawimage,Onpaint,我使用g.DrawImage作为输出图像,如下所示: g.DrawImage(Resources.dayPict, x1, myY, 20, 20); 但这条路并不快。我怎样才能画得更快 另外,当我画很多图像时,我会有延迟。 这个目标是否有一个特殊的缓冲区?有助于优化: 1) 调用没有大小的方法,如下所示:g.DrawImage(Resources.dayPict,x1,myY) 2) 更少使面板无效(仅计时器,而非鼠标事件) 如果我想调整图像的大小,我会制作新图像。这是一个用于绘制图像和UI

我使用g.DrawImage作为输出图像,如下所示:

g.DrawImage(Resources.dayPict, x1, myY, 20, 20);
但这条路并不快。我怎样才能画得更快

另外,当我画很多图像时,我会有延迟。 这个目标是否有一个特殊的缓冲区?

有助于优化:

1) 调用没有大小的方法,如下所示:g.DrawImage(Resources.dayPict,x1,myY)

2) 更少使面板无效(仅计时器,而非鼠标事件)


如果我想调整图像的大小,我会制作新图像。

这是一个用于绘制图像和UI的优秀库。我已经用过很多次了,这真是太棒了。你在用什么样的控件?您是否尝试过在表单上设置DoubleBuffered属性?我认为您也可以将其他控件的缓冲区加倍,但您必须对其进行编码,而不是使用专用属性@musefan我不相信双缓冲在这里会有帮助,如果它会降低性能,而不是提高性能的话。双缓冲用于减少闪烁。井绘制是一个昂贵的过程,因此您必须以其他方式进行优化。例如,最好将图形移出绘制事件。图像多久改变一次?例如,如果它们不更改形状,则可以在加载表单时将它们全部绘制一次,这将是将它们全部绘制到一个大图像的情况。然后,如果在窗体上放置图片框并移动它们,则只需在面板上绘制一个图像(可能在绘制事件中),这将为您进行一些内置优化,例如不绘制完全覆盖的图像。你的图像是透明的,还是有不透明度贴图?