【问题标题】:Windows forms font weightWindows 窗体字体粗细
【发布时间】:2014-10-04 15:06:00
【问题描述】:

我想在我的 win 表单窗口中使用细字体粗细。我唯一能找到的是 FontStyle,但我只能从粗体、斜体、常规、删除线和下划线中选择。不可能使我的字体变细。最好能指定字体粗细(100、200 等)。

【问题讨论】:

  • 我认为您不能在 Windows 窗体中访问 FontWeight(它在 WPF 中可用)。只需使用更细的字体(例如 Segoe UI Light)作为解决方法。
  • 您在 Microsoft Word 和所有其他 Windows 应用程序中执行的操作完全相同:使用支持所需粗细的字体。但我强烈建议不要这样做。 使用默认系统字体,即用户为其应用程序选择的字体:SystemFonts.MessageBoxFont这是他们喜欢并找到最易读的字体。

标签: c# winforms


【解决方案1】:

我没有尝试过,但是通过CreateFont函数我相信它肯定可以通过P/Invoking CreateFont function完成。

它接受一个参数fnWeight,即字体粗细。然后就可以调用Font.FromHFont方法获取Font的实例了。

【讨论】:

    【解决方案2】:

    您必须在部署中包含一个细字体的字体文件。

    然后你就可以在你的应用中使用它了。

    恐怕这会花费您的许可费用。 Wpf 确实使它变得更容易,因此可能是一个更可行的选择,具体取决于需求的大小和预算的大小。

    【讨论】:

    • 我有一个带有细字体的文件(它是 Roboto,我下载了常规、粗体和细字体)。我正在使用 PrivateFontCollection 从资源中加载所有 3 个。如何选择薄的?
    • 只有将它们作为三种单独的字体安装到 Windows 中才能实现。最简单的检查方法是使用 MS Word。如果您看到 Roboto 被列出了 3 次,您应该能够指导您的应用程序使用代表瘦的那个。请记住将其包含在您的应用程序安装程序中。
    • 我刚刚注意到 PrivateFontCollection 有 2 个字体系列:“Roboto”和“Roboto Thin” - 所以我会大胆猜测并尝试第二个
    【解决方案3】:

    据我所知,你不能直接做。

    话虽如此,您embed Windows 窗体中的 WPF 控件非常容易,并且 WPF 控件具有直接公开的字体粗细属性。也许这可能是合适的?

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 2016-06-06
      相关资源
      最近更新 更多