У меня проблемы с загрузкой ресурсов (изображений, семейств шрифтов, стилей) из внешнего ресурса dll. Я хотел бы иметь все ресурсы (изображения, шрифты, стили ...) в одном dll ресурса и установить их доступность для всех проектов (библиотек) в этом решении. Эти проекты в решении - это разные библиотеки, на которые ссылается и вызывает основное приложение.
До сих пор я пробовал несколько разных предложений, как это сделать, но ни одна из них не работала. Я использую Visual Studio 2019 и компилирую для. net 4.6.2 - если это что-то значит ...
Сначала я создал библиотеку ресурсов под названием myapp.resources. Внутри этого проекта у меня есть папка с именем Fonts, а внутри этой папки находится шрифт Lato-Thin.
Также в root проекта я создал словарь ресурсов под названием Fonts.xaml
-Project -Fonts -Lato-Thin.ttf -Fonts.xaml
структура Fonts.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:myapp.resources">
<FontFamily x:Key="LatoThin">Fonts/#Lato Thin</FontFamily>
</ResourceDictionary>
В основном приложении App.xaml я добавил загрузку этого ResourceDictionary:
<ResourceDictionary x:Key="Dict">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/myapp.resources;component/Fonts.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Последний шаг - добавление этой семьи шрифтов к элементу управления метками:
<Label Grid.Row="0" Grid.Column="0" Content="some random text for test" FontFamily="{StaticResource ResourceKey=LatoThin}"/>
Но я всегда получаю сообщение об ошибке, что ресурс шрифта LatoThin не может быть найден.
Та же ошибка, которую я получаю с любым другим типом ресурса, таким как изображения, стили.
Конечно, я добавил ссылки на проекты, и каждый файл находится там, где он должен быть.
Единственное работает, например, добавление изображения к кнопкам таким образом.
<syncfusion:ButtonAdv x:Name="btnSelectFile"
Grid.Row="1" Grid.Column="2"
VerticalAlignment="Center" SizeMode="Small"
Height="26" Width="26" Label="Button" Margin="3,3,3,3"
SmallIcon="pack://application:,,,/myapp.resources;component/Images/add.png"/>
Я пытался найти несколько полных уроков, которым нужно следовать, но у меня всегда одна и та же ошибка.
Итак, мой вопрос будет: как это решить?
Спасибо за любой совет.