我需要使用 C# 在 Windows 窗体中创建一些简单的图形。简单地说,我指的是线条、圆圈等。但是,当我画画时,例如实心圆,边缘不平滑(正如使用方形像素绘制圆时所预期的那样),但是当在矢量程序中使用相同数量的像素绘制相同的圆时,它看起来很完美。对于这个例子,我一直在 Inkscape 中绘图。
也许矢量软件使用某种渲染函数来平滑颜色,但是这在 C# 中是否可能,而无需创建太多代码?这是代码的示例,它使用Graphics
创建一个画布来绘图。
private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
Graphics canvas = e.Graphics;
Brush brush = Brushes.Aqua;
canvas.FillEllipse(brush, 0, 0, 10, 10);
}
Solution这段代码可以解决这个问题:
private void StatGraphicsPanel_Paint(object sender, PaintEventArgs e)
{
Graphics canvas = e.Graphics;
canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Brush brush = Brushes.Aqua;
canvas.FillEllipse(brush, 0, 0, 10, 10);
}
您想使用System.Drawing.Graphics.SmoothingMode http://msdn.microsoft.com/en-us/library/system.drawing.graphics.smoothingmode.aspx财产。在开始使用您的Graphics
对象,执行以下操作:
canvas.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
这应该会给你一个漂亮的抗锯齿椭圆,而不是默认的锯齿状椭圆。
同样,如果您想在图像中绘制高质量的文本,请使用System.Drawing.Graphics.TextRenderingHint http://msdn.microsoft.com/en-us/library/system.drawing.graphics.textrenderinghint.aspx财产。
正如其他人在评论中提到的,您可能需要考虑使用 WPF。 WinForms 已经过时了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)