【问题标题】:How do I set button font to Marlett如何将按钮字体设置为 Marlett
【发布时间】:2013-04-17 23:45:38
【问题描述】:

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

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

【问题讨论】:

  • 机器上是否安装了字体?
  • 是的,我很肯定。
  • 好的,请edit 问题并添加您用于设置Font 的代码。
  • 没有代码。我正在尝试从 Windows 窗体设计器中执行此操作。

标签: c# winforms button fonts truetype


【解决方案1】:

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

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

这会将控件的Font 设置为Marlett8.5 的大小。

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

【讨论】:

  • Marlett 是一种内置字体,带有最小化、最大化、关闭、滚动条箭头等字形。设计师未能正确设置它(即使我强制它手动输入字体名称),但您的解决方案从代码实际工作。谢谢!
  • @Spook,我很高兴能提供帮助!
【解决方案2】:
   button1.Font = new Font("Marlett",8, FontStyle.Regular);

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      这最终对我有用。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 2014-03-25
        • 2016-05-26
        • 2019-06-27
        • 1970-01-01
        • 2013-05-14
        相关资源
        最近更新 更多