Crad's .NET Blog

L'UGIblog di Marco De Sanctis
posts - 190, comments - 457, trackbacks - 70

SetCompatibleTextRenderingDefault: cusa l'è?

Sicuramente tutti voi avrete notato che, nel template utilizzato da VS2005 per il metodo main dei nostri progetti windows forms, c'è una riga che recita

Application.SetCompatibleTextRenderingDefault(false);

Di cosa si tratta? L'ho scoperto ieri sera, cercando di utilizzare anche in C# la classe WindowsFormsApplicationBase: è una nuova feature delle classi che ereditano da Control del Fx 2.0 e consiste nella capacità di utilizzare GDI piuttosto che GDI+ per il rendering del testo.

Come mai? Beh, GDI+ ha la peculiarità di avere API estremamente semplici da utilizzare, ma il buon vecchio GDI offre parecchi vantaggi, per esempio:

  • Il look dell'applicazione è più consistente con le varie altre dialogs del sistema operativo
  • C'è un migliore supporto per la localizzazione e per il rendering dei caratteri unicode
  • Il rendering è molto più veloce e può sfruttare anche l'accelerazione hardware

Per avvalersene bisogna, per l'appunto, invocare il metodo sopra citato con il parametro "false". Ultima nota, per chi sviluppa custom controls o utilizza l'OwnerDrawing: quando ci si trova a dover effettuare il rendering di un testo, in luogo dei metodi MeasureString e il DrawString dell'oggetto Graphics, bisogna utilizzare gli analoghi MeasureText e DrawText della classe TextRenderer.

Altre info si trovano a questo link e a quest'altro.

powered by IMHO 1.3

Print | posted on mercoledì 19 aprile 2006 13.19 | Filed Under [ .Net 2.0 Visual Studio Windows Forms ]

Powered by: