我正在尝试将按钮字体设置为系统的Marlett字体。但是,虽然我手动设置了font-face,但使用了其他字体。此外,当我使用字体对话框为该按钮选择字体时,未列出Marlett。
为什么会这样?如何在.NET Windows窗体控件中使用Marlett字体?
答案 0 :(得分:7)
虽然我不知道设计师背后的代码是什么,但我总是发现自定义安装的字体不出现在设计器中。好消息是Font
属性属于环境属性,因此如果您希望所有控件都具有相同的Font
,则仅必须将其设置为Form
。但是,您似乎只想让一个控件拥有Font
,所以让我们这样做:
ctrl.Font = new Font("Marlett", 8.5f);
例如,该控件的Font
设置为Marlett
,大小设置为8.5
。
如果您希望整套控件具有相同的Font
,,如果它们可以放置在像Panel
这样的容器中,那么您只需要设置Font
的{{1}};因为它又是一个环境属性。
答案 1 :(得分:4)
button1.Font = new Font("Marlett",8, FontStyle.Regular);
将此代码放在您想要更改的按钮名称Button1中(在iinitializecomponet之后或在表单Load事件中来自constrcutor)
答案 2 :(得分:3)
默认情况下,设计人员想要将GdiCharSet设置为0.这会导致Marlett字体回退到另一种字体。
如果将GdiCharSet更改为1,它将正常渲染。
还要注意它在.designer.cs中所做的更改,这也解释了为什么当你从代码中手动设置字体时它确实有效。
答案 3 :(得分:0)
这终于对我有用。
ctrl.Font = new System.Drawing.Font("Marlett", 12f, FontStyle.Regular, GraphicsUnit.Point, ((byte)(1)));
最后一个((byte)(1))将GdiCharSet设置为1,@ Paul在其他答案之一中指出了这一点。