У меня есть приложение, которое использует отдельную сборку библиотеки для ресурсов (но не для сборки только ресурсов, без кода), и я хотел бы добавить в библиотеку собственный шрифт.В WPF, как я могу ссылаться на шрифт в библиотеке ресурсов в коде позади?
Я могу получить шрифт, который является Open Type Font
, для загрузки, если я добавлю его .otf-файл в качестве ресурса для проекта для исполняющей сборки (а не в проект библиотеки ресурсов) со свойствами, заданными как построить Действие = «Ресурс» и скопировать на выход = «не копировать», используя следующий код:
FontFamily font = new FontFamily(new Uri("pack://application:,,,/"),
"./Resources/#CustomFont")); // Resources is a subfolder
Когда я пытаюсь добавить шрифт в проект библиотеки ресурсов, однако, шрифт не загружается , Я попытался, используя следующий код, чтобы загрузить его (также отметить: у меня нет большого опыта работы с колодой URIs):
FontFamily font = new FontFamily(new Uri("pack://application:,,,/MyLibrary"),
"./Resources/#CustomFont"));
// there is a Resources subfolder in my library as well
// not sure about whether I need the .
Библиотека делает работу для других ресурсов, таких как изображения.
Я также пробовал кучу других перестановок для URI без каких-либо успехов (он также не генерирует исключений, просто отображает шрифт по умолчанию, не уверен, что это отдельная проблема).
Я работал с Packaging Fonts with Applications на MSDN, где есть пример создания библиотеки ресурсов шрифтов, но примеров с использованием кода нет (я вынужден использовать код для этого).
Любые идеи о том, что мне нужно сделать? Я не в курсе?
Это не работает для меня, что предполагает у меня есть какой-то другой потому что он работает на вас. – Pysul
Спасибо, для меня это сработало ... спас мне много проб и ошибок! – yvesonline
Я могу подтвердить, что он отлично работает, и прежде, чем я попробовал слишком много комбинаций загрузки без успеха !!! Я думал, что относительный доступ к ресурсам из dll будет достаточным, но, видимо, добавление имени сборки требуется, даже если шрифты должны быть доступны из одной и той же сборки! – too