5

我在 GraphicsBox 上手动渲染了一些字符串,因为你不能有一个带有透明背景的标签。

但是,无论我尝试哪种渲染模式,我都无法让字符串看起来很好(即它们会出现在 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 依次更改为每个选项,但无论我尝试什么,如果有任何抗锯齿功能,它都会像屏幕截图中那样出现模糊、模糊的混乱。任何想法?

4

1 回答 1

2

您可以在 .NET 中使用透明标签。
查看 CodeProject 上的这篇文章,了解如何在 Windows 窗体中使用透明图像和标签

至于你的绘图问题,Calibri的本机字体大小不是 10。你可以在控制面板->字体中验证这一点。最小的本机字体大小是 12(至少在我的机器上)。将您的尺寸从 12 号更改为 12 号,您会发现它好多了。

当您在后台不使用本机字体大小时,Windows/.NET/ GDI + 将尝试为您缩放字体。这种缩放最有可能导致您的问题。

于 2009-10-13T09:13:03.103 回答