在用户控件中找不到资源字典中的样式

Styles from resource dictionary not found in user control

我有一个资源字典,里面有一堆样式,我也在我的用户控件中链接它们,如下所示:

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

这在运行时一切正常。

但是,在重新构建解决方案之前,无论哪个用户控件都是最新的,资源字典 'cannot be found' 中的样式之一会反复出现问题。这个错误在我停止调试过程后会再次出现,并且会在重建时再次消失。

我不认为这与特定样式有关,因为当我添加新样式时,找不到的样式似乎发生了变化。

有什么办法可以阻止这种情况发生吗?

您使用了相对 URI,因此它会在您使用 UserControl 的地方查找您的资源文件。它找不到你的资源文件,因为你的资源文件不在绝对路径中。

AbsolutePath = CurrentPath(r.g 你使用 UserControl 的地方)+ RelativePath

所以使用绝对路径:

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