c # - прозрачная форма не показывает текст правильно - PullRequest
3 голосов
/ 10 декабря 2011

Идея моего проекта - показать сплошной текст на прозрачном элементе управления формы.

Я использовал эту технику, чтобы сделать форму прозрачной:

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

Проблема, с которой я столкнулсяИмея цветные края вокруг текста.Я пробовал рисовать сглаженный текст с помощью графики и отображать текст с помощью меток, но ни одна из них не сработала.У меня все еще есть отвратительные, пиксельные, извилистые края вокруг моего текста.

Я немного осмотрелся - сообщения обычно касаются создания прозрачной формы, не касаясь этой проблемы.

1 Ответ

1 голос
/ 10 декабря 2011

Вы можете получить разумный вывод, используя 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 правильно.

Природа шрифтов, как правило, заключается в наличии фона для рисования.Если у вас черный текст на прозрачной форме, а у конечного пользователя черный фон - конечный пользователь ничего не увидит.

...