2010-02-21 16 views
10

Quando si chiama il metodo PrivateFontCollection.AddFontFile in Mono.net Restituisce sempre una famiglia di font standard. Questo bug è già stato segnalato su diversi siti Web, ma per quanto ne so senza un modo per risolverlo. Il bug stesso non è stato ancora risolto nelle librerie mono. C'è qualche soluzione per questo?Soluzione alternativa per il bug Mono PrivateFontCollection.AddFontFile

EDIT: Come reazione alla risposta di scagnozzo mi post il codice:

PrivateFontCollection pfc = new PrivateFontCollection(); 
pfc.AddFontFile("myFontFamily.ttf"); 
myFontFamily = pfc.Families[0x00]; 
Font myFont = new Font(myFontFamily,14.0f); 

So che questo codice funziona bene sul quadro Microsoft.Net, ma quando si esegue su Mono, dà solo uno standard font-family (penso che sia Arial) con il nome di myFontFamily.ttf

+4

Hai archiviato un bug nel bugzilla di Mono? Questo è l'unico modo per il team di sapere che c'è un bug da correggere in un primo momento. –

+0

Il bug è stato già segnalato da qualcun altro a novembre su http://bugzilla.ximian.com/show_bug.cgi?id=77498 –

+0

Questo errore è contrassegnato come RISOLTO e si trattava di un arresto anomalo. Ora l'arresto è stato risolto, ma il comportamento è ancora sbagliato. Si prega di presentare un nuovo bug con il comportamento previsto appropriato. Grazie! –

risposta

1

Trovato questo post da google. Se c'è qualche consolazione, sto riscontrando lo stesso problema con AddMemoryFont (funziona bene su Windows, mono mi dà un carattere generico.) Se è una consolazione, sembra che sia un problema con Mono, e non il tuo codice.

Scavando attraverso l'origine, System.Windows.Drawing.PrivateFontCollection è principalmente un semplice wrapper attorno a GDIPlus.GdipPrivateAddFontFile, che a sua volta è un wrapper attorno a FcConfigAppFontAddFile di fontconfig. Il motivo per cui non sembra generare errori è che GDIplus non controlla un valore di ritorno da fontconfig, quindi sembra che fontconfig non sia in grado di leggere il font per qualsiasi motivo, ma GDIplus non lo sa , quindi nemmeno PrivateFontCollection.

Problemi correlati