WPF 4: словари MergedDictionaries больше не работают - PullRequest
3 голосов
/ 20 апреля 2010

У меня ниже блок XAML

'BaseStyles.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="ShinyBlue.xaml"/>
        <ResourceDictionary Source="DataGrid.Generic.xaml"/>
    </ResourceDictionary.MergedDictionaries>

</ResourceDictionary>

Формы, которые ссылаются на эту работу во время разработки, но не во время выполнения. Если моя форма ссылается непосредственно на ShinyBlue.xaml или DataGrid.Generic.xaml, эта таблица стилей работает.

EDIT

Если я вставлю это прямо в форму, она будет работать правильно. По-видимому, проблема как-то связана с моей оберткой.

Сломанный

<Window.Resources>
    <ResourceDictionary Source="../BaseStyles.xaml"/>
</Window.Resources>

Работает

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="ShinyBlue.xaml"/>
    <ResourceDictionary Source="DataGrid.Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>

1 Ответ

2 голосов
/ 28 апреля 2010

Попробуйте включить весь путь от пространства имен до имени файла:

<ResourceDictionary Source="pack://application:,,,/[YourDll];component/[YourLocation]/ShinyBlue.xaml"/>

Где [YourDll] - это имя вашего проекта, а [YourLocation] - это место, где ResourceDictionary находится в вашей DLL.

...