1

我想安装字体,但我的代码不起作用。如何使用 C# Windows 窗体应用程序以编程方式在用户的 PC 上安装新字体,以便我可以在此应用程序包含的报告中使用此字体?

这是我的代码:

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

1 回答 1

0

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

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

但是,这里有一些警告。

  1. 用户需要具有管理员权限,操作系统会提示他们。
  2. 字体需要驻留在应用程序的执行文件夹中,我的代码才能正常工作。

您可以继续使用该 Windows API,但可能会更加困难。

于 2013-08-02T19:11:55.583 回答