在用户控件中找不到资源字典中的样式
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" />
我有一个资源字典,里面有一堆样式,我也在我的用户控件中链接它们,如下所示:
<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" />