【问题标题】:Can not access the staticresource from a ResourceDictionary无法从 ResourceDictionary 访问静态资源
【发布时间】:2014-11-18 02:55:50
【问题描述】:

AB.xaml 合并字典 A.xaml 和 B.xaml
CD.xaml 合并字典 C.xaml 和 D.xaml
BaseStyle.xaml 合并字典 AB.xaml 和 CD.xaml
app.xaml MergedDictionaries BaseStyle.xaml

假设我在 A.xaml 中定义了一个画笔,并且在 C.xaml 中使用该画笔。

应用程序先合并了AB.xaml,然后合并了CD.xaml,但问题是为什么C.xmal在使用StaticResource关键字运行应用程序时无法访问画笔资源

当然,DynamicResource 关键字可以正常工作。
而如果 app.xaml 直接将 AB.xaml 和 CD.xaml 合并,也可以正常工作。 那么有什么不同?

【问题讨论】:

  • 好像是订购问题。您是否检查过您是否按照正确的顺序完成了该操作,这意味着每当您在资源字典中使用引用时,应该已经添加了以前的资源字典。
  • 我认为排序是正确的,因为我将画笔移动到 C.xaml,而 A.xaml 使用它。你可以试一试。核心不同于将 AB.xaml 和 CD.xaml 放入 BaseStyle.xaml。

标签: wpf xaml resourcedictionary staticresource


【解决方案1】:

终于找到原因了:
访问https://*.com/a/2679228/2325995

MSDN: 合并字典中的资源在资源查找范围中占据一个位置,该位置正好在它们合并到的主资源字典的范围之后。

【讨论】: