在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();
        }
    }
}

在C#中安装字体

安装字体就像将其复制到Fonts目录一样简单。所以,就这么做吧:

File.Copy("MyNewFont.ttf",
    Path.Combine(Environment.GetFolderPath(SpecialFolder.Windows),
        "Fonts", "MyNewFont.ttf"));

然而,这里有一些注意事项。

  1. 用户需要拥有管理员权限,操作系统会提示用户
  2. 字体需要位于应用程序的执行文件夹中,我的代码才能准确工作

你可以继续使用Windows API,但这可能会更困难。