C# 如何将按钮字体设置为Marlett
我正在尝试将button的字体设置为系统的Marlett字体。但是,虽然我手动设置了字体,但使用了其他字体。此外,当我使用字体对话框为该按钮选择字体时,Marlett未列出 为什么会这样?如何在.NET Windows窗体控件中使用Marlett字体C# 如何将按钮字体设置为Marlett,c#,winforms,button,fonts,truetype,C#,Winforms,Button,Fonts,Truetype,我正在尝试将button的字体设置为系统的Marlett字体。但是,虽然我手动设置了字体,但使用了其他字体。此外,当我使用字体对话框为该按钮选择字体时,Marlett未列出 为什么会这样?如何在.NET Windows窗体控件中使用Marlett字体 button1.Font = new Font("Marlett",8, FontStyle.Regular); 将此代码用于按钮名称Button1,您希望更改的位置(在IIInitializeComponet或表单加载事件后从Constr
button1.Font = new Font("Marlett",8, FontStyle.Regular);
将此代码用于按钮名称Button1,您希望更改的位置(在IIInitializeComponet或表单加载事件后从Constructor中)虽然我不知道设计器背后的代码,但我始终发现自定义安装的字体不会显示在设计器中。好消息是
Font
属性是环境属性,因此如果希望所有控件都具有相同的Font
,则只需将其设置在窗体上。但是,似乎您只希望一个控件具有字体
,因此让我们这样做:
ctrl.Font = new Font("Marlett", 8.5f);
例如,它将该控件的Font
设置为Marlett
,大小为8.5
如果您希望一整套控件具有相同的Font
,如果它们可以放置在像面板那样的容器中,那么您只需设置面板的Font
;因为这也是一个环境属性。默认情况下,设计器似乎希望将GdiCharSet设置为0。这会导致Marlett字体退回到另一种字体
如果将GdiCharSet更改为1,它将正常渲染
还要注意它在.designer.cs中所做的更改,这也将解释为什么当您从代码中手动设置字体时它会起作用。这就是我最终的工作
ctrl.Font = new System.Drawing.Font("Marlett", 12f, FontStyle.Regular, GraphicsUnit.Point, ((byte)(1)));
最后一个((字节)(1))将GdiCharSet设置为1,这是@Paul在另一个答案中指出的。机器上安装了字体吗?是的,我肯定是。好的,请回答问题并添加用于设置字体的代码。
。没有代码。我正试图从Windows窗体设计器中执行此操作。Marlett是一种内置字体,带有诸如最小化、最大化、关闭、滚动条箭头等标志符号。设计器无法正确设置它(即使我强制设置,手动输入字体名),但您的代码解决方案确实有效。谢谢@斯派克,我真的很高兴能帮上忙!