При использовании шрифтов для моего приложения я не получаю предупреждение/ошибку/исключение, если FontFamily, установленный в стиле, не найден.Отладка FontFamily загружена?
Обычно в WPF в окне вывода выдается предупреждающее сообщение с сообщением о том, что вы являетесь обязательным, не существует. Или вы получаете исключение, когда ваш ResourceDictionary не может быть загружен, потому что его файл не найден. Однако абсолютно не существует никакого предупреждения при попытке загрузить FontFamily без правильного имени или из неисправной сборки, есть ли способ увидеть, какой шрифт действительно загружен/показан, и если он преуспеет?
* EDIT: Я использовал ответ ниже и изменил метод TestFont
к следующему:
[Conditional("DEBUG")]
private void CheckFontFamily()
{
string fontName = FontFamily.Source.Substring(FontFamily.Source.IndexOf('#') + 1);
if (!FontFamily.FamilyNames.Any(x => x.Value == fontName))
{
bool fontFamilyFound = false;
string baseFontName = fontName;
while (!fontFamilyFound && fontName.Contains(' '))
{
fontName = fontName.Substring(0, fontName.LastIndexOf(' '));
if (FontFamily.FamilyNames.Any(x => x.Value == fontName))
{
fontFamilyFound = true;
string fontFace = baseFontName.Substring(fontName.Length + 1);
if (!FontFamily.FamilyTypefaces.Any(x => x.AdjustedFaceNames.Any(y => y.Value == fontFace)))
{
Console.WriteLine("WARNING: Font '{0}' with TypeFace '{1}' not found at '{2}'.", fontName, fontFace, FontFamily.Source);
}
break;
}
}
if (!fontFamilyFound)
{
Console.WriteLine("WARNING: Font '{0}' not found at '{1}'.", fontName, FontFamily.Source);
}
}
Это покажет, если загрузка шрифта, как это будет работать: (и, таким образом проверить, путь работал)
<TextBlock Text="Lorem Ipsum" FontFamily="{Fonts:FontFamily '/Project;component/Fonts/#ITC Quay Book'}"/>
добавьте свои стили xaml. –