【问题标题】:c# - Transparent form doesn't show text properlyc# - 透明表单无法正确显示文本
【发布时间】:2011-12-10 13:03:30
【问题描述】:

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

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

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

我遇到的问题是文本周围的彩色边缘。我尝试使用图形绘制抗锯齿文本并使用标签显示文本,但均未奏效。我的文字周围仍然有令人作呕的像素化石灰边缘。

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

【问题讨论】:

    标签: c# forms text controls transparency


    【解决方案1】:

    你可以通过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));
    }
    

    但如果您打算使用大字体,它的渲染效果不会太好,因为它不能真正antialias 正确地。

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

    【讨论】:

    • 是的。你是说小字体吗?
    猜你喜欢
    • 2017-11-13
    • 2021-04-29
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 2023-03-05
    相关资源
    最近更新 更多