我的项目的想法是在透明的表单控件上显示纯文本。
我已经使用这种技术使表单透明:
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/