C# - 如何在不将其安装到系统中的情况下使用自定义字体

use*_*744 10 c# fonts

我再次需要你的帮助.

我正在使用自定义Font在C#上开发一个小应用程序.问题是,字体必须先安装在系统上.如果系统中没有该字体,则只使用Times New Roman.有没有办法在应用程序中嵌入字体文件,因此不需要在每个系统中安装它?

谢谢.

Shi*_*umi 9

如果您还在阅读本文,我可能会指出您不必使用不安全的代码来加载资源中的字体.这是使用Marshal的一个例子.

PrivateFontCollection _fonts = new PrivateFontCollection();

byte[] fontData = Resources.CustomFontResourceName;

IntPtr fontPtr = Marshal.AllocCoTaskMem(fontData.Length);

Marshal.Copy(fontData, 0, fontPtr, fontData.Length);

_fonts.AddMemoryFont(fontPtr, fontData.Length);

Marshal.FreeCoTaskMem(fontPtr);

Font customFont = new Font(_fonts.Families[0], 6.0F);
Run Code Online (Sandbox Code Playgroud)