我在GraphicsBox上手动渲染一些字符串,因为你不能拥有带有透明背景的Label。
无论我尝试哪种渲染模式,我都无法让字符串看起来任何好处(即,它们会出现在Word或图形程序中。
这是界面模型与屏幕渲染相比的图片:
不幸的是,StackOverflow似乎缩小了图片,所以这里也是一个直接链接:http://i.stack.imgur.com/vYFaF.png
以下是用于渲染的代码:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
Graphics labelDrawing = e.Graphics;
labelDrawing.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
labelDrawing.DrawString("Setup Progress", new Font("Calibri", 10, FontStyle.Bold, GraphicsUnit.Point, 0), new SolidBrush(Color.Black), new Point(12, 9));
labelDrawing.DrawString("The following components are being configured.", new Font("Calibri", 10, FontStyle.Regular, GraphicsUnit.Point, 0), new SolidBrush(Color.Black), new Point(24, 27));
}
我已经尝试将TextRenderingHint依次更改为每个选项,但无论我尝试什么,如果有任何抗锯齿,那么它就会出现模糊,模糊的混乱,如截图中所示。有什么想法吗?
答案 0 :(得分:2)
您可以在.NET中使用透明标签 在How to Use Transparent Images and Labels in Windows Forms
上查看有关CodeProject的这篇文章至于您的绘图问题 Calibri 没有10的原生字体大小。您可以在控制面板 - >字体中验证这一点。最小的原生字体大小为12(至少在我的机器上)。将你从大小改为12,你会发现它好多了。
如果您不使用本地字体某处,Windows / .NET / GDI +将尝试为您缩放字体。这种缩放最有可能导致您的问题。