Pergunta

Usando o GDI+ para desenhar texto no vidro:

graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);

Você notará que o texto habilitado para o ClearType desenha muito mal no vidro:

alt text

Mas com vidro desativado o texto, é claro, desenhe bem:

alt text

A título de comparação aqui é A suavização de fontes anti-Alias:

alt text

E aqui está Sem suavização de fontes:

alt text

Observação: Nenhuma suavização de fontes parece melhor do que realmente, porque o StackOverflow redimensiona as imagens no seu monitor.

Como faço para desenhar um texto do ClearType no vidro?

Notas

  • Win32 Nativo
  • Não .NET (ou seja nativo)
  • não winforms (ou seja nativo)
  • GDI+ (ou seja nativo)

O que Mark está sugerindo é que você não pode honrar as preferências do usuário por renderização de texto (ou seja, "SystemDefault". O ClearType não funciona no vidro e você não pode usá -lo.

Em outras palavras, se você está representando o vidro, você deve substituir o texto renderizando:

graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

Caso contrário, você deve deixar o TextRenderingHint no seu padrão TextRenderingHintSystemDefault.

Veja também

Foi útil?

Solução

O problema é inerente à maneira como o desenho é realizado. Todo o seu texto está sendo desenhado em um fundo preto e depois compositado em um fundo de vidro; A suavização semi-transparente de fontes está sendo combinada com preto para ficar quase preto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top