c# - 透明表单无法正确显示文本

标签 c# forms text controls transparency

我的项目的想法是在透明的表单控件上显示纯文本。

我已经使用这种技术使表单透明:

BackColor = Color.Lime;
TransparencyKey = Color.Lime;

我遇到的问题是文本周围的彩色边缘。我试过使用图形绘制消除锯齿的文本并使用标签显示文本,但都没有用。我的文字周围仍然有令人厌恶的像素化石灰边缘。

我环顾四周 - 帖子通常关注的是使表单透明而不是处理这个问题。

最佳答案

您可以使用 TextRenderingHint.AntiAliasGridFit 获得合理的输出。

private void TestForm_Paint(object sender, PaintEventArgs e) {
  e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
  e.Graphics.DrawString("Header", this.Font, SystemBrushes.WindowText, new Point(1, 1));
}

但是,如果您打算使用大字体,则渲染效果不会太好,因为它无法真正抗锯齿

一般来说,字体的本质是有一个背景可以用来绘制。如果透明表单上有黑色文本,而最终用户有黑色背景——最终用户将看不到任何内容。

关于c# - 透明表单无法正确显示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8456675/

相关文章:

android - 将文本转换为语音

c# - 用户可定制的数据结构的设计选择?

javascript - 如何将可变定价和总计添加到我的预订表格中?

javascript - jQuery 提交即时表单同时挂起 Mozilla 和 Chrome

javascript - 使用 jQuery 根据匹配表单输入值执行操作的最有效方法是什么?

c - 我应该如何使用 windows.h 将字符串输出到 c 中的文本框?

javascript - JS 鼠标悬停时文本发生变化

c# - 如何将 ASP.NET Core UserSecrets 部署到生产环境

c# - 在没有包管理器控制台的情况下安装 C# 库

c# - 您如何设置单个 TextBox 的样式?