GTKSharp, Pango, set font size quirkiness
I'm using GTK Sharp to work on some GUI for my app.
Take a look at this chunk of code:
Pango.FontDescription fontdesc = new Pango.FontDescription();
fontdesc.Family = "Sans";
//fontdesc.Size = 12;
fontdesc.Weight = Pango.Weight.Semibold;
SyncInfo.ModifyFont(fontdesc);
Gdk.Color fontcolor = n开发者_高级运维ew Gdk.Color(255,255,255);
SyncInfo.ModifyFg(StateType.Normal, fontcolor);
Notice fontdesc.Size is commented out. Because only when I comment it out, will I see the label with text. If I set any value to it, the label will not appear.
Also, I did a Console.WriteLine, and the default Size is 0. So I tried frontdesc.Size = 0, and it still disappears, any idea?
Thanks!
Check this out. You need to set it to 12 * Scale.PangoScale. I had a similar problem with the C APIs.
This is essentially a C# version of the other PangoScale answer:
Pango.FontDescription fontdesc = new Pango.FontDescription();
fontdesc.Size = Convert.ToInt32(12 * Pango.Scale.PangoScale);
....
Notes: FontDescription.Size is a int and PangoScale is type double so a type cast or other double to int conversion is needed. Scale is likely ambiguous in the referenced name spaces, so the full reference Pango.Scale is probably best used.
精彩评论