Как проверить, поддерживает ли шрифт определенный стиль - PullRequest
5 голосов
/ 02 сентября 2011

Я получаю следующее исключение при изменении шрифта моего приложения, потому что я использую зачеркивание в части своего приложения, а некоторые шрифты не поддерживают его:

enter image description here

Я изменяю шрифт приложения, используя диалог шрифтов. Мне нужно проверить, поддерживает ли выбранный шрифт стиль вычеркивания после назначения его моему приложению.

Каков рекомендуемый способ сделать это? Я знаю, что могу создать шрифт со стилем и поймать исключение, но есть ли более элегантный способ сделать это?

Заранее спасибо.


РЕДАКТИРОВАТЬ : пользователь выбирает шрифт, а не необходимый зачеркнутый. В этот момент мне нужно проверить, поддерживает ли шрифт зачеркнутый стиль, потому что я создаю зачеркнутый шрифт в части моего приложения. Если шрифт не поддерживает зачеркнутый стиль, пользователь не сможет выбрать этот шрифт.

Ответы [ 3 ]

3 голосов
/ 02 сентября 2011

Обновлено: (чтобы отразить обновление в первоначальном сообщении):

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"
         }
    }
0 голосов
/ 05 сентября 2011

Наконец я использовал следующее:

    private bool SupportStrikeout(Font font)
    {
        try
        {
            using (Font strikeout = new Font(font, FontStyle.Strikeout))
            {
                return true;
            }
        }
        catch (ArgumentException)
        {
            return false;
        }
    }
0 голосов
/ 02 сентября 2011

Если вы используете стандартный класс Font, вы можете использовать свойство Font.Strikeout :

//Gets a value that indicates whether this Font specifies a horizontal line through the font.
public bool Strikeout { get; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...