在C#中安装字体?

时间:2013-08-02 19:08:17

标签: c#

我想安装字体,但我的代码无效。如何安装新字体  用户的PC以编程方式使用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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

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

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

但是,这里有一些警告。

  1. 用户需要拥有管理员权限,操作系统会提示他们。
  2. 字体需要驻留在应用程序的执行文件夹中,以使我的代码完全正常工作。
  3. 您可以继续使用该Windows API,但可能会更加困难。