GTKSharp,Pango,设置字体大小的怪癖

时间:2010-03-14 22:23:06

标签: c# mono gtk# pango

我正在使用GTK Sharp为我的应用程序处理一些GUI。

看一下这段代码:

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);

注意fontdesc.Size被注释掉了。因为只有当我评论它时,我才能看到带有文字的标签。如果我为其设置任何值,标签将不会出现。

另外,我做了一个Console.WriteLine,默认大小为0.所以我尝试了frontdesc.Size = 0,它仍然消失,任何想法?

谢谢!

2 个答案:

答案 0 :(得分:5)

检查this。您需要将其设置为12 * Scale.PangoScale。我在C API方面遇到了类似的问题。

答案 1 :(得分:0)

这实际上是另一个PangoScale答案的C#版本:

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

注意:FontDescription.Size是 int ,PangoScale是 double 类型,因此需要进行类型转换或其他double to int转换。 Scale 在引用的名称空间中可能不明确,因此最好使用完整的引用Pango.Scale。