GTKSharp、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,默认的Size是0。所以我尝试了frontdesc.Size = 0,它仍然消失,知道吗?
谢谢!
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 = new 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!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
检查这个。您需要将其设置为 12 * Scale.PangoScale。我在使用 C API 时也遇到过类似的问题。
Check this out. You need to set it to 12 * Scale.PangoScale. I had a similar problem with the C APIs.
这本质上是其他 PangoScale 答案的 C# 版本:
注意:FontDescription.Size 是 int,PangoScale 是 double 类型,因此类型转换或其他 double 到 int 转换是需要。
Scale 在引用的名称空间中可能不明确,因此最好使用完整的引用 Pango.Scale。
This is essentially a C# version of the other PangoScale answer:
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.