Стили из словаря ресурсов не найдены в пользовательском элементе управления - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть словарь ресурсов со множеством стилей, которые я тоже связываю в своих пользовательских элементах управления, например:

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Theme/ThemedResources.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

Все это прекрасно работает во время выполнения.

Однако я получаюповторяющаяся проблема в том, что один из стилей в словаре ресурсов «не может быть найден» в зависимости от того, какой пользовательский элемент управления является самым последним, до тех пор, пока решение не будет перестроено.Эта ошибка появится снова после того, как я остановлю процесс отладки, и снова исчезнет с перестроением.

Я не думаю, что это связано с определенным стилем, как, например, когда я добавляю новые стили, стиль, который можетне может быть найдено, кажется, изменится.

Есть идеи, как я могу предотвратить это?

1 Ответ

0 голосов
/ 20 ноября 2018

Вы использовали относительный URI, поэтому он будет искать ваш файл ресурсов в том месте, где вы использовали свой UserControl.Он не может найти ваш файл ресурсов, потому что ваш файл ресурсов не находится в AbsolutePath.

AbsolutePath = CurrentPath (где вы использовали свой UserControl) + RelativePath

, поэтому используйте AbsolutePath:

   <ResourceDictionary Source="pack://application:,,,/{YourAssemblyName};component/Theme/ThemedResources.xaml" />
...