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