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

时间:2018-11-20 10:52:56

标签: c# wpf user-controls resourcedictionary

我有一本资源字典,其中也包含一堆样式,这些样式也在我的用户控件中链接,如下所示:

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

在运行时一切正常。

但是,我遇到了一个反复出现的问题,即在无法重建解决方案之前,无论最新的用户控件是哪种,都无法找到资源词典中的一种样式。在停止调试过程后,该错误将再次出现,并且在重新构建后将再次消失。

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

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

1 个答案:

答案 0 :(得分:1)

您已经使用了相对URI,因此它将在您使用UserControl的某个位置查找资源文件。它找不到您的资源文件,因为您的资源文件不在AbsolutePath中。

AbsolutePath = CurrentPath(例如您使用UserControl的位置)+ RelativePath

因此请使用AbsolutePath:

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