2011-12-10 64 views
3

我的項目的想法是在透明窗體控件上顯示純文本。c# - 透明窗體不能正確顯示文本

我已經使用這種技術來使窗體透明:圍繞文本

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

我遇到的問題是彩色的邊緣。我已經嘗試使用圖形繪製消除鋸齒的文本,並使用標籤顯示文本,但都無效。我的文字周圍仍然有令人厭惡的像素化石灰邊緣。

我環顧了一下 - 帖子通常關心的是使表單透明而不處理這個問題。

回答

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)); 
} 

但是,如果你打算使用大字體,也不會渲染太清楚,因爲它不能真正抗鋸齒正常。

字體的性質,一般來說,是有一個背景可供借鑑。如果透明表單上有黑色文本,並且最終用戶有黑色背景 - 最終用戶不會看到任何內容。

+0

是。你的意思是小字體? –