Domanda

Utilizzo di GDI+ per disegnare testo sul vetro:

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

Noterai che il testo abilitato per ClearType viene disegnato molto male sul vetro:

alt text

Ma con il vetro disabilitato il testo, ovviamente, disegna bene:

alt text

A titolo di confronto ecco Smussamento dei caratteri anti-alias:

alt text

Ed ecco nessun livellamento dei caratteri:

alt text

Nota:Nessun livellamento dei caratteri sembra migliore di quanto non sia in realtà perché StackOverflow ridimensiona le immagini sul tuo monitor.

Come faccio a disegnare il testo ClearType sul vetro?

Appunti

  • Win32 nativo
  • non .NET (cioè. nativo)
  • non Winforms (cioè. nativo)
  • GDI+ (cioè. nativo)

Ciò che Mark suggerisce è che non è possibile rispettare le preferenze dell'utente per il rendering del testo (ad es."SystemDefault".ClearType non funziona sul vetro e non è possibile utilizzarlo.

In altre parole, se stai eseguendo il rendering su vetro devi sovrascrivere il rendering del testo con:

graphics.SetTextRenderingHint(TextRenderingHintAntiAliasGridFit);

Altrimenti dovresti lasciare il file TextRenderingHint al suo valore predefinito TextRenderingHintSystemDefault.

Guarda anche

È stato utile?

Soluzione

Il problema è inerente al modo in cui viene eseguito il disegno.Tutto il testo viene disegnato su uno sfondo nero, quindi composto su uno sfondo di vetro;lo smussamento del carattere semitrasparente viene combinato con il nero per renderlo quasi nero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top