【问题标题】:Styles from resource dictionary not found in user control在用户控件中找不到资源字典中的样式
【发布时间】:2018-11-20 10:52:55
【问题描述】:

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

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

这一切在运行时都可以正常工作。

但是,我遇到一个反复出现的问题,即资源字典中的一种样式在最新的用户控件中“找不到”,直到重新构建解决方案。在我停止调试过程后,此错误将再次出现,并在重新构建后再次消失。

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

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

【问题讨论】:

    标签: c# wpf user-controls resourcedictionary


    【解决方案1】:

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

    AbsolutePath = CurrentPath (r.g where you used your UserControl) + RelativePath

    所以使用绝对路径:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      相关资源
      最近更新 更多