2010-02-21 29 views
10

Po wywołaniu metody PrivateFontCollection.AddFontFile w Mono.net zawsze zwraca ona standardową rodzinę czcionek. Ten błąd został już zgłoszony na kilku stronach internetowych, ale o ile wiem, bez możliwości jego rozwiązania. Sam błąd nie został jeszcze naprawiony w Mono-bibliotekach. Czy istnieje jakieś obejście tego problemu?Obejście problemu w przypadku błędu Mono PrivateFontCollection.AddFontFile

EDIT: W odpowiedzi na odpowiedź zausznik będzie zamieścić kod:

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

Znam ten kod będzie działać dobrze w ramach Microsoft.Net, ale podczas wykonywania na Mono, to po prostu daje standard rodzina czcionek (myślę, że to Arial) o nazwie myFontFamily.ttf

+4

Czy zgłosiłeś błąd w bugzilli Mono? To jedyny sposób, aby zespół wiedział, że istnieje błąd, który należy naprawić. –

+0

Błąd został już zgłoszony przez kogoś innego w listopadzie na http://bugzilla.ximian.com/show_bug.cgi?id=77498 –

+0

Ten błąd został oznaczony jako ROZWIĄZANY, a był to błąd. Teraz awarię naprawiono, ale zachowanie nadal jest nieprawidłowe. Proszę zgłosić nowy błąd z odpowiednim oczekiwanym zachowaniem. Dzięki! –

Odpowiedz

1

Znaleziono ten wpis z google. Jeśli jest to jakaś pociecha, doświadczam tego samego problemu z AddMemoryFont (działa dobrze na Windowsie, mono daje mi ogólną czcionkę.) Jeśli to jakieś pocieszenie, wygląda na to, że to problem z Mono, a nie z twoim kodem.

Kopanie za pośrednictwem źródła, System.Windows.Drawing.PrivateFontCollection jest przeważnie właśnie otoki wokół GDIPlus.GdipPrivateAddFontFile, która sama jest owinięcie wokół Fontconfig za FcConfigAppFontAddFile. Powodem, dla którego nie wydaje się, aby zgłaszać błędy jest to, że GDIplus nie sprawdza wartości zwracanej przez fontconfig, więc wygląda na to, że fontconfig nie jest w stanie odczytać czcionki z jakiegokolwiek powodu, ale GDIplus o tym nie wie. , więc nie działa także PrivateFontCollection.

Powiązane problemy