c#中没有显示图形

本文关键字:显示图 图形 显示 | 更新日期: 2023-09-27 18:02:42

我有一个picturebox,里面有一个图像,在这个图像的顶部我画了一些椭圆。然而,只有一些省略号出现了。代码看起来像这样:

Graphics g = Graphics.FromHwnd(pictureBox1.Handle); 
g.FillEllipse(redBrush, rfidNode1.readerPos.X, rfidNode1.readerPos.Y, 15, 15);

编辑:我很抱歉我复制并粘贴了最后一行两次…所以只有一条线填满椭圆。同时,x和y也在图片框的范围内。

c#中没有显示图形

你能试试这样吗?(如果需要,可以更改尺寸)

Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bmp);
g.FillEllipse(redBrush, rfidNode1.readerPos.X, rfidNode1.readerPos.Y, 15, 15);
pictureBox1.Image = bmp;
也许我没听清你的意思?

如果X和Y是相同的,那么您将绘制两个椭圆,一个在另一个之上,因此只有最后一个是可见的。也可能是X和Y超出了图片框的范围

尝试重写paint事件并将您的绘画代码放在那里。绘图过程经常运行,然后你的图形就会透支。

c#绘图教程

要在控件上绘图,请尝试注册paint-事件并使用paint事件参数中提供的图形对象。

我不太确定是否真的有可能以安全的方式绘制图片框。我的意思是:确保你所有的省略号在你需要的时候都是可见的。如果你想要一些自定义的行为,PictureBox不是很好的解决方案,由我。

像一个解决方案,我建议在现在你有图片框的地方手动绘制图像。

希望对你有帮助。

问候。