6

我正在尝试将按钮字体设置为系统的 Marlett 字体。但是,虽然我手动设置了字体,但使用了其他字体。此外,当我使用字体对话框为该按钮选择字体时,没有列出 Marlett。

为什么会这样?如何在 .NET Windows 窗体控件中使用 Marlett 字体?

4

4 回答 4

7

虽然我不知道设计器背后的代码是什么,但我一直发现自定义安装的字体不会出现在设计器中。好消息是该Font属性是环境属性,因此如果您希望所有控件都具有相同的属性,Font只需将其设置为Form. 但是,您似乎只想拥有一个控件,Font所以让我们这样做:

ctrl.Font = new Font("Marlett", 8.5f);

例如,它将将该控件设置FontMarlett和大小8.5

如果您希望整套控件具有相同的属性Font并且可以将它们放置在像 a 这样的容器中Panel,那么您只需Font设置Panel; 因为再次,它是一个环境属性。

于 2013-04-24T12:31:04.777 回答
4
   button1.Font = new Font("Marlett",8, FontStyle.Regular);

将此代码放在您想要更改的按钮名称 Button1 中(在 iinitializecomponet 之后的 constrcutor 或表单 Load 事件中)

于 2013-04-24T12:29:53.997 回答
3

默认情况下,设计人员似乎希望将 GdiCharSet 设置为 0。这会导致 Marlett 字体回退到另一种字体。

如果将 GdiCharSet 更改为 1,它将正常渲染。

还要注意它在 .designer.cs 中所做的更改,这也将解释为什么当您从代码手动设置字体时它确实有效。

于 2017-11-19T08:34:44.980 回答
1

这最终对我有用。

ctrl.Font = new System.Drawing.Font("Marlett", 12f, FontStyle.Regular, GraphicsUnit.Point, ((byte)(1)));

最后一个 ((byte)(1)) 将 GdiCharSet 设置为 1,@Paul 在其他答案之一中指出了这一点。

于 2019-11-30T00:48:10.197 回答