如何在我的 C# 应用程序中嵌入字体? (使用 Visual Studio 2005)
在我正在开发的应用程序中嵌入 truetype 字体的最佳方法是什么? 基本上我想确保在另一台机器上安装时我的应用程序可以使用特定的字体。 我有 *.ttf 字体文件,只需要一种嵌入它或在应用程序运行时自动安装它的方法。
我是否需要设置安装程序来在安装过程中安装字体,或者我可以在应用程序运行时动态加载字体吗? 事实上,如果知道的话,我们都会很高兴。
该应用程序是使用 .NET 2.0 用 C# 开发的。
What is the best way to embed a truetype font within the application i'm developing? Basically i want to make sure a particular font is available to my application when installed on another machine. I have the *.ttf font file and just need a way of embedding it or automatically installing it when the application is run.
Do i need to set the installation program to install the font during installation or can i dynamically load the font during runtime of the application? In fact both would be nice to know.
The application is being developed in C# using .NET 2.0.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这篇博客文章应该对您有帮助。
基本上,您将字体添加为嵌入资源,然后将其加载到 PrivateFontCollection 对象。
This blog post should help you.
Basically you add the font as an embedded resource then load it into a PrivateFontCollection object.
这是 Will 的答案,翻译成 C#(未经测试):
以及他们的 Paint() 方法:
Here's Will's answer, translated to C# (untested):
along with their Paint() method:
它比看起来容易; 您可以将字体作为资源嵌入到应用程序中,并在应用程序的 Properties 命名空间中将其作为强类型属性进行访问。 但给定的链接应该是一个很好的起点。
对于禁用 VB 的用户:
将字体添加为应用程序中的资源。 调用资源 MyFontLol。 您可以从 Properties.Resources.MyFontLol 访问此资源(作为字节数组)。
我还没有测试以下内容,但它似乎是可行的:
最后一点。 PFC 将字体存储为 GDI+ 字体。 这些与某些表单控件不兼容。 来自文档:
Its easier than this seems; you can embed the font as a resource in your app and access it as a strongly-typed property within the Properties namespace of your app. But the given link should be a good starting point.
For the VB-disabled:
Add the font as a resource in your application. Call the resource MyFontLol. You can access this resource (as a byte array) from Properties.Resources.MyFontLol.
I haven't tested the following, but it appears to be workable:
One last note. The PFC stores the font as a GDI+ font. These aren't compatible with some forms controls. From the docs:
这可能不是最好的方法,但是您不能将字体包含在资源中,然后将其复制到 Windows 目录上的字体文件夹中吗?
it might not be the best way but couldn't you just include the font with your resources and then copy it to the font's folder on the windows dir?