C#中的FontDialog类有一个属性“AllowScriptChange”,允许用户选择脚本(西方,希伯来语,阿拉伯语,土耳其语等)。启用后,下拉框将提供所有这些选项以及其他可用选项,具体取决于所选字体。
如果对话框成功,则所选字体的GdiCharSet设置值为0-255。 177是希伯来语,161是希腊语等。是否有一个将值从字符串转换为字符串的函数?我自己可以写一个switch语句,但我想做正确的方法。
这是部分列表:http://msdn.microsoft.com/en-us/library/cc194829.aspx
编辑:将从CharSet转换为代码页的函数也可以使用,因为我认为获取代码页的名称应该很容易。
答案 0 :(得分:5)
如果您不想使用交换机如何使用枚举?类似的东西:
public enum CharSet : byte
{
ANSI_CHARSET = 0,
DEFAULT_CHARSET = 1,
SYMBOL_CHARSET = 2,
SHIFTJIS_CHARSET = 128,
HANGEUL_CHARSET = 129,
HANGUL_CHARSET = 129,
GB2312_CHARSET = 134,
CHINESEBIG5_CHARSET = 136,
OEM_CHARSET = 255,
JOHAB_CHARSET = 130,
HEBREW_CHARSET = 177,
ARABIC_CHARSET = 178,
GREEK_CHARSET = 161,
TURKISH_CHARSET = 162,
VIETNAMESE_CHARSET = 163,
THAI_CHARSET = 222,
EASTEUROPE_CHARSET = 238,
RUSSIAN_CHARSET = 204
}
如果使用.NET 3.5
,则可以设置扩展方法public static class GdiCharHelper
{
public static string ToGdiName(this byte GdiCharSet)
{
return Enum.GetName(typeof(CharSet), GdiCharSet);
}
}
所以你可以在代码中使用它:
string name = Font.GdiCharSet.ToGdiName();
编辑:现在我考虑一下,你应该把Extension方法的返回值改为enum,所以:
return (CharSet)GdiCharSet;
这样你也可以比较:
If (Font.GdiCharSet.ToCharSet() == CharSet.ANSI_CHARSET) {...}