Иногда можно обнаружить, что ресурсы из управляющей библиотеки не загружаются во время разработки, несмотря на то, что вы положили в app.xaml, чтобы попытаться загрузить вещи.
MS создала механизм для Blend, который вы можете использовать в visual studio, так как это конструктор Blend.
При этом используется «специальный» словарь ресурсов, называемый DesignTimeResources.xaml
Это будет использоваться только во время разработки.
Добавьте один в Свойства вашего проекта exe проблемы.
Именно с таким именем.
Поместите все свои слияния в это.
Например, это один из моих проектов в MapEditor, который использует многочисленные ресурсы UILib. UILib - это управляющая библиотека со всеми видами пользовательского интерфейса.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MapEditor">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/Geometries.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/ControlTemplates.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/FontResources.xaml"/>
<ResourceDictionary Source="pack://application:,,,/UILib;component/Resources/UILibResources.xaml"/>
<ResourceDictionary Source="/Views/Drawing/Terrain/Resources/CityResources.xaml"/>
<ResourceDictionary Source="/Resources/MapEditorResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Выгрузите ваш csproj (щелкните правой кнопкой мыши в обозревателе решений), отредактируйте его и найдите узел для этого словаря ресурсов.
Измените его на:
<Page Include="Properties\DesignTimeResources.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
<ContainsDesignTimeResources>true</ContainsDesignTimeResources>
</Page>
Перезагрузите проект, закройте и снова откройте Visual Studio.
Ваши стили теперь должны применяться.