Я хотел бы использовать пользовательский шрифт, загруженный из библиотеки классов, поэтому я поместил файлы шрифтов в папку Resource библиотеки классов.
и у меня есть этот метод для получения шрифтов:
private static FontFamily GetFontFromFile(MyFontWeightEnum style)
{
var fontList = new PrivateFontCollection();
fontList.AddFontFile(@"Resources\Roboto-Black.ttf");
fontList.AddFontFile(@"Resources\Roboto-Bold.ttf");
fontList.AddFontFile(@"Resources\Roboto-Italic.ttf");
fontList.AddFontFile(@"Resources\Roboto-Light.ttf");
fontList.AddFontFile(@"Resources\Roboto-Medium.ttf");
fontList.AddFontFile(@"Resources\Roboto-Regular.ttf");
fontList.AddFontFile(@"Resources\Roboto-Thin.ttf");
switch (style)
{
case MyFontWeightEnum.Black:
return fontList.Families[0];
case MyFontWeightEnum.Bold:
return fontList.Families[1];
case MyFontWeightEnum.Light:
return fontList.Families[2];
case MyFontWeightEnum.Medium:
return fontList.Families[3];
case MyFontWeightEnum.Regular:
return fontList.Families[4];
case MyFontWeightEnum.Italic:
return fontList.Families[5];
case MyFontWeightEnum.Thin:
default:
return fontList.Families[6];
}
}
и я использую это так в публичном методе, чтобы вернуть шрифт, подобный этому:
public static Font GetRobotoFont(MyFontWeightEnum style, MyFontSizeEnum fontSize)
{
return new Font(GetFontFromFile(style), fontSize.ToFloat());
}
, поэтому эти два метода существуют внутри библиотеки классов, поэтому я ссылаюсь на библиотеку классов напроект Winforms, и я использую метод на метке:
label1.Font = MyCustomFonts.GetRobotoFont(MyFontWeightEnum.Thin, MyFontSizeEnum.Size18);
, когда я запускаю приложение, я получаю: System.IO.FileNotFoundException: 'Файл не найден.'
, поэтому я помещаюфайл шрифтов внутри папки рабочего стола и укажите путь, и он работал нормально без каких-либо проблем.
Я посмотрел в stackoverflow для похожих проблем, и я нашел метод памяти, я попробовал его, но он не сработал, неправильная загрузка шрифтов,
, поэтому вывод заключается в том, что при создании сборки все файлы в папке ресурсов преобразуются в байт [], и поэтому я получаюИсключение не существует.
, поэтому любой может объяснить проблему и помочь решить ее.