开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜