加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

为什么我的Windows窗体字符串在消除锯齿时看起来如此丑陋?

发布时间:2020-12-14 02:48:09 所属栏目:Windows 来源:网络整理
导读:我在GraphicsBox上手动渲染一些字符串,因为你不能拥有带有treansparent背景的Label. 无论我尝试哪种渲染模式,我都无法让字符串看起来有任何好处(即,它们会出现在Word或图形程序中). 这是界面模型与屏幕渲染相比的图片: 不幸的是,StackOverflow似乎缩小了图
我在GraphicsBox上手动渲染一些字符串,因为你不能拥有带有treansparent背景的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.",FontStyle.Regular,new Point(24,27));
}

我已经尝试将TextRenderingHint依次更改为每个选项,但无论我尝试什么,如果有任何抗锯齿,那么它会出现在模糊,模糊的混乱中,如截图中所示.任何的想法?

解决方法

您可以在.NET中使用透明标签.
在 How to Use Transparent Images and Labels in Windows Forms上查看CodeProject上的这篇文章

至于您的绘图问题,Calibri没有10的本机字体大小.您可以在控制面板 – >字体中进行验证.最小的原生字体大小为12(至少在我的机器上).将你从大小改为12,你会发现它好多了.

如果您不在引擎盖下使用本机字体大小,Windows / .NET / GDI将尝试为您缩放字体.这种缩放最有可能导致您的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读