2010-02-21 35 views
10

Khi tôi gọi phương thức PrivateFontCollection.AddFontFile trong Mono.net Nó luôn trả về một phông chữ chuẩn. Lỗi này đã được báo cáo trên một số trang web, nhưng theo như tôi biết mà không có cách nào để giải quyết nó. Bản thân lỗi không được sửa trong thư viện Mono. Có cách giải quyết nào không?Giải pháp cho các lỗi riêng tư của MonoFontCollection.AddFontFile

EDIT: Như một phản ứng về câu trả lời của tay sai tôi sẽ gửi mã:

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

tôi biết mã này sẽ làm việc tốt trên các khuôn khổ Microsoft.Net, nhưng khi thực hiện trên Mono, nó chỉ đưa ra một tiêu chuẩn font-family (Tôi nghĩ rằng đó là Arial) với tên của myFontFamily.ttf

+4

Bạn đã gửi lỗi trong lỗi của Mono chưa? Đó là cách duy nhất để nhóm biết rằng có một lỗi để sửa chữa ngay từ đầu. –

+0

Lỗi này đã được báo cáo bởi một người khác trong tháng 11 trên http://bugzilla.ximian.com/show_bug.cgi?id=77498 –

+0

Lỗi này được đánh dấu là RESOLVED và đó là sự cố. Bây giờ vụ tai nạn là cố định, nhưng hành vi vẫn còn sai. Vui lòng gửi một lỗi mới với hành vi mong muốn thích hợp. Cảm ơn! –

Trả lời

1

Tìm thấy bài đăng này từ google. Nếu có bất kỳ sự an ủi nào, tôi đang gặp vấn đề tương tự với AddMemoryFont (hoạt động tốt trên Windows, mono mang lại cho tôi một phông chữ chung). Nếu nó an ủi, có vẻ như đó là vấn đề với Mono chứ không phải mã của bạn.

Đào qua nguồn, System.Windows.Drawing.PrivateFontCollection chủ yếu chỉ là trình bao bọc xung quanh GDIPlus.GdipPrivateAddFontFile, bản thân nó là một trình bao bọc xung quanh FcConfigAppFontAddFile của phông chữ. Lý do nó không xuất hiện để ném bất kỳ lỗi nào là GDIplus không kiểm tra giá trị trả về từ fontconfig, vì vậy có vẻ như fontconfig không thể đọc phông chữ vì bất kỳ lý do gì, nhưng GDIplus không biết về nó , do đó, không phải PrivateFontCollection.

Các vấn đề liên quan