Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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#_C++_Xna_Windows Phone 8_Monogame - Fatal编程技术网

C# 应用程序中的自定义字体

C# 应用程序中的自定义字体,c#,c++,xna,windows-phone-8,monogame,C#,C++,Xna,Windows Phone 8,Monogame,在我的应用程序中,我想添加使用自定义字体的功能 用户从我的服务器列表中选择字体,下载并在应用程序中使用 如何处理应用程序中呈现字体的部分? 如何在不使用xaml的应用程序中实现这一点?您即将开始的任务可能涉及大量代码,因为字体中的字符需要先渲染到纹理,然后才能作为SpriteBatch的一部分进行渲染 通常,这通过内容管道在XNA中工作。选择字体文件并在XML中设置字体属性,然后内容管道将此信息编译为xnb资源,可以加载和呈现该资源。问题是,这一切都发生在编译时,因此在运行时很难做到 参考: 另

在我的应用程序中,我想添加使用自定义字体的功能

用户从我的服务器列表中选择字体,下载并在应用程序中使用

如何处理应用程序中呈现字体的部分?
如何在不使用xaml的应用程序中实现这一点?

您即将开始的任务可能涉及大量代码,因为字体中的字符需要先渲染到纹理,然后才能作为SpriteBatch的一部分进行渲染

通常,这通过内容管道在XNA中工作。选择字体文件并在XML中设置字体属性,然后内容管道将此信息编译为xnb资源,可以加载和呈现该资源。问题是,这一切都发生在编译时,因此在运行时很难做到

参考:

另一种方法是使用BMFont等工具将字体预渲染到纹理,并编写自己的渲染器。我曾经用这种技巧写过一篇教程。然而,这与使用BMFont工具替换XNA内容管道几乎是一样的

记住这一点,如果您想实现这一点,您可能需要编写自己的代码,在运行时加载每个字体后,将其渲染为纹理。加载字体时,还需要跟踪纹理上每个字形的矩形。为了节省纹理空间和支持更大的字体大小,你还需要考虑纹理填充和排除某些字符。