在C#中安装字体
本文关键字:字体 安装 | 更新日期: 2023-09-27 18:26:14
我想安装字体,但我的代码不起作用。如何在上安装新字体以编程方式使用C#Windows窗体应用程序的用户电脑,以便我可以使用此应用程序中包含的报告中的字体?
这是我的代码:
namespace Font
{
public partial class Form1 : Form
{
[DllImport("gdi32.dll", EntryPoint = "AddFontResourceW", SetLastError = true)]
public static extern int AddFontResource([In][MarshalAs(UnmanagedType.LPWStr)]
string lpFileName);
public void InstallFont()
{
var result = AddFontResource(@"D:'Temp'BAseman.TTF");
var error = Marshal.GetLastWin32Error();
}
public Form1()
{
InitializeComponent();
}
private void btnInstall_Click(object sender, EventArgs e)
{
InstallFont();
}
}
}
安装字体就像将其复制到Fonts
目录一样简单。所以,就这么做吧:
File.Copy("MyNewFont.ttf",
Path.Combine(Environment.GetFolderPath(SpecialFolder.Windows),
"Fonts", "MyNewFont.ttf"));
然而,这里有一些注意事项。
- 用户需要拥有管理员权限,操作系统会提示用户
- 字体需要位于应用程序的执行文件夹中,我的代码才能准确工作
你可以继续使用Windows API,但这可能会更困难。