我在更改应用程序字体时遇到以下异常,因为我在应用程序的一部分中使用了删除操作,而某些字体不支持它:
我使用字体对话框更改了应用程序字体。在将其分配给我的应用程序后,我需要检查所选字体是否支持删除线样式。
建议的方法是什么?我知道我可以使用样式创建一个字体并捕获异常,但有更优雅的方法吗?
提前致谢。
编辑:用户选择字体,而不是必要的删除线。在那一刻,我需要检查字体是否支持样式删除线,因为我在应用程序的一部分中创建了三角形字体。如果字体不支持删除线样式,则不允许用户选择该字体。
答案 0 :(得分:3)
已更新:(以反映初始帖子中的更新):
InstalledFontCollection ifc = new InstalledFontCollection();
for (int i = 0; i < ifc.Families.Length; i++)
{
if (ifc.Families[i].IsStyleAvailable(FontStyle.StrikeOut))
{
//add particular font with this family to your "font selector"
}
}
答案 1 :(得分:0)
如果您使用的是标准Font
类,则可以使用Font.Strikeout属性:
//Gets a value that indicates whether this Font specifies a horizontal line through the font.
public bool Strikeout { get; }
答案 2 :(得分:0)
最后我使用了以下内容:
private bool SupportStrikeout(Font font)
{
try
{
using (Font strikeout = new Font(font, FontStyle.Strikeout))
{
return true;
}
}
catch (ArgumentException)
{
return false;
}
}