Тест, если Шрифт установлен

Сочетание двух ответов сработало для меня. Сначала я модифицировал файл .csproj, чтобы удалить ссылку на версию 1.0.0

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

, а затем сделал

Update-Package -Reinstall

из файла и работал.

25
задан Dave Verwer 12 October 2008 в 16:11
поделиться

3 ответа

string fontName = "Consolas";
float fontSize = 12;

using (Font fontTester = new Font( 
       fontName, 
       fontSize, 
       FontStyle.Regular, 
       GraphicsUnit.Pixel)) 
{
    if (fontTester.Name == fontName)
    {
        // Font exists
    }
    else
    {
        // Font doesn't exist
    }
}
25
ответ дан Jeff Hillman 15 October 2019 в 15:24
поделиться

, Как Вы получаете список всех установленных шрифтов?

var fontsCollection = new InstalledFontCollection();
foreach (var fontFamiliy in fontsCollection.Families)
{
    if (fontFamiliy.Name == fontName) ... \\ installed
}

См. класс InstalledFontCollection для деталей.

MSDN:
Установленные шрифты Перечисления

19
ответ дан Phillip S 15 October 2019 в 15:24
поделиться

Благодаря Jeff я лучше прочитал документацию Класса шрифта:

, Если familyName параметр определяет шрифт, который не установлен на машине, запускающей приложение, или не поддерживается, Microsoft Sans Serif заменят.

результат этого знания:

    private bool IsFontInstalled(string fontName) {
        using (var testFont = new Font(fontName, 8)) {
            return 0 == string.Compare(
              fontName,
              testFont.Name,
              StringComparison.InvariantCultureIgnoreCase);
        }
    }
13
ответ дан Stefan Steiger 15 October 2019 в 15:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: