Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C Winfows表单应用程序以编程方式在用户PC上安装新字体?_C#_.net - Fatal编程技术网

C# 如何使用C Winfows表单应用程序以编程方式在用户PC上安装新字体?

C# 如何使用C Winfows表单应用程序以编程方式在用户PC上安装新字体?,c#,.net,C#,.net,如何使用C Windows窗体应用程序以编程方式在用户PC上安装新字体,以便在此应用程序中包含的报表中使用此字体?您可以在AddFontResource上尝试使用此代码 代码 您可以在AddFontResource上尝试使用此代码 代码 根据 此函数仅为当前会话安装字体。当 系统重新启动时,字体将不存在。有字体 即使在重新启动系统后安装,字体也必须列在 登记处 因此,我找到的最佳选择是将字体复制到windows字体目录 File.Copy("MyNewFont.ttf", Path.Co

如何使用C Windows窗体应用程序以编程方式在用户PC上安装新字体,以便在此应用程序中包含的报表中使用此字体?

您可以在AddFontResource上尝试使用此代码

代码


您可以在AddFontResource上尝试使用此代码

代码

根据

此函数仅为当前会话安装字体。当 系统重新启动时,字体将不存在。有字体 即使在重新启动系统后安装,字体也必须列在 登记处

因此,我找到的最佳选择是将字体复制到windows字体目录

File.Copy("MyNewFont.ttf",
    Path.Combine(Environment.GetFolderPath(SpecialFolder.Windows),
        "Fonts", "MyNewFont.ttf"));
然后在注册表中添加相应的条目,如

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts");
                    key.SetValue("My Font Description", "fontname.tff");
                    key.Close();
根据

此函数仅为当前会话安装字体。当 系统重新启动时,字体将不存在。有字体 即使在重新启动系统后安装,字体也必须列在 登记处

因此,我找到的最佳选择是将字体复制到windows字体目录

File.Copy("MyNewFont.ttf",
    Path.Combine(Environment.GetFolderPath(SpecialFolder.Windows),
        "Fonts", "MyNewFont.ttf"));
然后在注册表中添加相应的条目,如

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts");
                    key.SetValue("My Font Description", "fontname.tff");
                    key.Close();

请看,我很乐意帮助您Egyeast上述代码在调试模式下工作,但如果代码未经调试就运行,则无法工作。知道吗?我看不到Windows字体文件夹中安装的字体。此外,重新启动后字体不再可用。。。知道吗?使用此方法安装的字体仅在当前会话中可用。重新启动将删除它。我很乐意帮助您Egyeast上面的代码在调试模式下工作,但如果代码在没有调试的情况下运行,则无法工作。知道吗?我看不到Windows字体文件夹中安装的字体。此外,重新启动后字体不再可用。。。知道吗?使用此方法安装的字体仅在当前会话中可用。重新启动将删除它。您应该更仔细地阅读文档。此函数仅为当前会话安装字体。系统重新启动时,字体将不存在。要在重新启动系统后安装字体,必须在注册表中列出字体。这意味着预解决方案是正确的,但它需要您对Registry的评论的帮助。X copy文件将引发未经授权的异常。您应该更仔细地阅读文档。此函数仅为当前会话安装字体。系统重新启动时,字体将不存在。要在重新启动系统后安装字体,必须在注册表中列出字体。这意味着预解决方案是正确的,但它需要您对Registry的评论的帮助。X复制文件将引发未经授权的异常。