我使用 C# WinForms 应用程序,其中包含一些 PictureBox。
我画了一些图,一开始(因为盒子的大小)我没有注意到错误,
但经过几个盒子后,我注意到我的代码运行良好,
但绘制的图像是错误的。
就好像绘图方法被调用的次数比调试器中调用的次数要多。
正如您在这里看到的:
[]
我多次运行我的代码,
已为表单启用/禁用
DoubleBuffering
,相同的行为。但是不,它被调用过一次。我总是在方法中使用它:
Bitmap bmp = new Bitmap(Resources.<backgroundfile>, 342, 54);
RectangleF rectfLage = new RectangleF(16, 14, 60, 22);
Graphics graphicLageNr = Graphics.FromImage(bmp);
graphicLageNr.SmoothingMode = SmoothingMode.AntiAlias;
graphicLageNr.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphicLageNr.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphicLageNr.DrawString($"{lage}", new Font("Tahoma", 16), Brushes.Black, rectfLage);
graphicLageNr.Flush();
之后,我将 PictureBox 的背景设置为 NULL,然后设置为位图。
Controls[0].Controls[2].Controls["lagenr"].BackgroundImage = null
Controls[0].Controls[2].Controls["lagenr"].BackgroundImage = bmp
我可能做错了什么?
问题解决了。
我所要做的就是设置正确的模式。
Picturebox.SizeMode
必须是CenterImage
。