【问题标题】:Viusal C# WinForm app: font on client's PCVisual C# WinForm 应用程序:客户端 PC 上的字体
【发布时间】:2018-11-13 18:11:39
【问题描述】:

我创建了一个 WinForm 应用程序,其中包含一些带有特殊字体的标签,该字体未安装在客户的 PC 上,因此当我的任何客户运行我的应用程序时,标签的字体是不同的。我已经对此进行了搜索以找到解决方案,并且有一些选项,例如将字体添加到资源中,然后以编程方式设置应用程序上任何控件的属性,依此类推;但是我不想以编程方式一一更改控件的字体!我希望在将标签添加到我的应用程序时使用我的特殊字体并且我希望它看起来像我的客户的电脑。

第一个问题:我该怎么做?

如果不可能,

第二个问题:如何在不让客户知道的情况下将字体安装到客户的 PC 上?我的意思是,如何以编程方式不仅在我的项目上安装字体,而且为客户的操作系统安装字体?

【问题讨论】:

  • 从技术上讲,如果您将字体复制到%windir%\fonts,它应该被“安装”。在法律方面,大多数字体都是经过许可的,不能在没有侵权的情况下复制到另一台计算机上。
  • 在应用程序中作为附加安装。我使用一个包含字体的文件夹。字体随应用程序一起安装。所以它专门用于应用程序而不是其他程序。
  • 我使用了代码项目codeproject.com/articles/107377/…中的这个例子,我对他所做的做了一些调整。但这是一个好的开始。
  • @Halonic 如前所述,以编程方式设置每个控件的属性有点困难。因为:1. 与客户端 PC 上运行的应用程序的 UI 设计会有所不同(大小、样式等) 2. 控件太多:)

标签: c# .net winforms visual-studio


【解决方案1】:

对于这些场景,您需要编写一个部署脚本。通常这些事情是通过安装包完成的。 您的字体必须与应用程序一起打包。然后应该运行您的主应用程序或其他脚本来安装字体。 这里有一些链接,

Install font via command line

Wix Installer

Windows Installer

【讨论】:

    【解决方案2】:

    您的问题相当广泛,因为您要问两件事。

    对于您的第一个问题,不妨通过匹配的解决方案替换所有文本。如果我没记错的话,其中包含设计文件。

    对于第二个问题,您想制作一个安装程序。 您可以使用http://wixtoolset.org/ 为您的程序创建安装程序。周围有足够多的教程可以帮助您入门。包括您的(自定义)字体尝试; How to install Open Type Fonts using Wix

    【讨论】:

    • 第一个问题:如果我已将字体添加到资源中,我不应该为任何东西编写代码吗?我的意思是不需要添加任何脚本来声明应用程序应该使用添加到资源中的字体?将它们添加到资源中就足够了吗?
    • 嗯,是的,来自@mjwills 的评论指的是stackoverflow.com/questions/21986744/…,如果你从你的资源文件夹中直接解决这个问题。字体需要由系统找到/注册。但是,如果您使用 Wix 或 Installshield 制作安装程序,则无需编写代码。管理员可以为该机器上的每个人安装特定字体。
    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多