2010-03-14 9 views
5

Tôi đang sử dụng GTK Sharp để hoạt động trên một số GUI cho ứng dụng của mình.GTKSharp, Pango, đặt kích thước phông chữ quirkiness

Hãy xem đoạn mã này:

Pango.FontDescription fontdesc = new Pango.FontDescription(); 
fontdesc.Family = "Sans"; 
//fontdesc.Size = 12; 
fontdesc.Weight = Pango.Weight.Semibold; 
SyncInfo.ModifyFont(fontdesc); 
Gdk.Color fontcolor = new Gdk.Color(255,255,255); 
SyncInfo.ModifyFg(StateType.Normal, fontcolor); 

Thông báo fontdesc.Size là nhận xét ra. Bởi vì chỉ khi tôi nhận xét nó ra, tôi sẽ thấy nhãn với văn bản. Nếu tôi đặt bất kỳ giá trị nào cho nó, nhãn sẽ không xuất hiện.

Ngoài ra, tôi đã tạo một Console.WriteLine và Kích thước mặc định bằng 0. Vì vậy, tôi đã thử frontdesc.Size = 0 và nó vẫn biến mất, bất kỳ ý tưởng nào?

Cảm ơn!

Trả lời

5

Kiểm tra this. Bạn cần đặt nó thành 12 * Scale.PangoScale. Tôi đã có một vấn đề tương tự với các API C.

0

Đây thực chất là một phiên bản C# của câu trả lời PangoScale khác:

Pango.FontDescription fontdesc = new Pango.FontDescription(); 
fontdesc.Size = Convert.ToInt32(12 * Pango.Scale.PangoScale); 
.... 

Ghi chú: FontDescription.Size là một int và PangoScale là gõ đôi do đó, một dàn diễn viên loại hoặc hai đến int chuyển đổi khác là cần thiết. Quy mô có thể không rõ ràng trong không gian tên được tham chiếu, do đó, tham chiếu đầy đủ Pango.Scale có thể được sử dụng tốt nhất.