我有一个输入框,人们在里面键入字体名称,然后保存为JPEG。这一切都很好。但是如果他们键入一个像“times new roman
”这样的字体名称,它必须正确地大写为“Times New Roman
”,否则它就不起作用了!
我能不能以某种方式迭代所有可用的字体,并将其呈现给他们作为下拉列表,以便没有拼写问题,并且他们确实只使用系统上的字体?
我有一个输入框,人们在里面键入字体名称,然后保存为JPEG。这一切都很好。但是如果他们键入一个像“times new roman
”这样的字体名称,它必须正确地大写为“Times New Roman
”,否则它就不起作用了!
我能不能以某种方式迭代所有可用的字体,并将其呈现给他们作为下拉列表,以便没有拼写问题,并且他们确实只使用系统上的字体?
直接使用以下代码:
FontFamily[] ffArray = FontFamily.Families;
foreach (FontFamily ff in ffArray)
{
//Add ff.Name to your drop-down list
}
或者您可以直接绑定它:
<ComboBox ItemsSource="{Binding Source={x:Static Fonts.SystemFontFamilies}}" />
我在应用程序的几个位置都有字体列表,因此我希望只加载一次列表并重复使用该列表来绑定控件。
public List<string> GetFontFamilies()
{
List<string> fontfamilies = new List<string>();
foreach (FontFamily family in FontFamily.Families)
{
fontfamilies.Add(family.Name);
}
return fontfamilies;
}
public static readonly List<string> FontNames = FontFamily.Families.Select(f => f.Name).ToList();