Aero: Cómo dibujar texto ClearType en el vidrio?
-
27-09-2019 - |
Pregunta
El uso de GDI + para dibujar texto sobre vidrio:
graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush);
Se dará cuenta de que el ClearType activado texto se inspira muy mal en el vidrio:
Pero con vidrio desactivado el texto, por supuesto, dibujar bien:
A modo de comparación aquí es Anti-alias de suavizado de fuentes
Y aquí es sin suavizado de fuentes
Nota: . Sin suavizado de fuentes se ve mejor de lo que realmente hace porque Stackoverflow cambia el tamaño de las imágenes en el monitor
¿Cómo dibujar texto ClearType en el vidrio?
Notas
- Win32 nativa
- No .NET ( es decir. nativo)
- No Winforms ( es decir. nativo)
- GDI + ( es decir. nativo)
Lo que Marcos está sugiriendo es que no se puede cumplir con las preferencias del usuario para el renderizado de texto (es decir, "SystemDefault
". ClearType no funciona en el vidrio, y no se puede utilizar.
En otras palabras, si estás reproduciendo en el vidrio debe invalidar la representación de texto con:
graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);
De lo contrario, debe salir de la TextRenderingHint
en él es TextRenderingHintSystemDefault
por defecto.
Ver también
Solución
El problema es inherente a la forma en que se realiza el dibujo. Todo el texto se está elaborando sobre un fondo negro, a continuación, mezclados en un fondo de cristal; el suavizado de fuentes semi-transparente se combina con negro para hacer casi negro.