如何知道WinForms是否可以呈现某些菜单字体?

如何知道WinForms是否可以呈现某些菜单字体?,winforms,visual-c++,fonts,Winforms,Visual C++,Fonts,我有一个用Visual C++/CLR编写的WinForms应用程序。我有一个“语言”菜单,下拉显示可用的语言和当前选择的语言。这些语言是以其母语形式书写的,例如,它显示的不是“德语”,而是“德语” 其中一些语言使用不同的字母/字体书写,如俄语和繁体中文。在我的机器上,它们呈现良好,但一些用户向我报告,某些语言在它们的机器上呈现为胡言乱语/垃圾,如您在此处所见: 有没有办法纠正这一点,或者至少检测到它?目前,我从文件夹名称加载这些语言名称(如果文件夹中存在某些数据文件,则支持一种语言,并因此

我有一个用Visual C++/CLR编写的WinForms应用程序。我有一个“语言”菜单,下拉显示可用的语言和当前选择的语言。这些语言是以其母语形式书写的,例如,它显示的不是“德语”,而是“德语”

其中一些语言使用不同的字母/字体书写,如俄语和繁体中文。在我的机器上,它们呈现良好,但一些用户向我报告,某些语言在它们的机器上呈现为胡言乱语/垃圾,如您在此处所见:


有没有办法纠正这一点,或者至少检测到它?目前,我从文件夹名称加载这些语言名称(如果文件夹中存在某些数据文件,则支持一种语言,并因此列出该语言)。理想情况下,我可以做一些事情让它“正常工作”,但如果必须的话,我可以接受检测到丢失的字体并返回到罗马/英文版本。

需要更多细节来帮助。。。您是否使用默认的系统字体?还是随部署提供自定义字体?如果您部署自己的字体,您可以使用私有字体集合:我目前不提供任何字体。所以我猜它只是使用系统字体,这显然对一些人来说是不可用的。。。有没有一种方法可以让所有控件都可以使用私有字体?我不知道,我们的控件是自定义样式的,所以它们位于公共库中,我们只使用一个单独的字体集合。您可以使用系统字体,只是无法保证特定系统可能安装了什么,但也许您可以找到一些适合您的逻辑?看见您可以创建Windows使用的常用CJK字体系列的列表,并搜索该系列或回退到替代?