Как в WPF сослаться на шрифт в библиотеке ресурсов в коде?

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

Я могу получить шрифт Open Type Fontдля загрузки, если добавлю его .otf в качестве ресурса для проекта для исполняемой сборки (а не для проекта библиотеки ресурсов) со свойствами, заданными как Действие сборки = «Ресурс» и Копировать в вывод = «Не копировать», с помощью следующего кода:

FontFamily font = new FontFamily(new Uri("pack://application:,,,/"), 
                      "./Resources/#CustomFont")); // Resources is a subfolder

Однако, когда я пытаюсь добавить шрифт в проект библиотеки ресурсов, шрифт не загружается. Я попытался использовать следующий код для ее загрузки (также обратите внимание: у меня нет большого опыта работы с пакетными URI):

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, но безуспешно (он также не генерирует исключений, просто отображается шрифтом по умолчанию, не уверен, что это отдельная проблема).

Я работал с Упаковка шрифтов с приложениямина MSDN, где есть пример создания библиотеки ресурсов шрифтов, но нет примеров использования кода (для этого я вынужден использовать код позади) .

Есть идеи, что мне нужно сделать? Я сбился с пути?

14
задан axanpi 9 May 2012 в 19:59
поделиться