PRISM在模块之间共享样式

时间:2011-03-01 14:13:53

标签: silverlight prism

我正在测试karl为silverlight制作的参考项目。 在它的模块中有一个StaticResource绑定到App.xaml文件中的资源。

当我这样做时,设计视图不会在我的模块中显示样式。 我错过了什么?

  • Common包含Styles.xaml
  • Shell合并Styles.xaml
  • ModuleA {StaticResource StyleA}

2 个答案:

答案 0 :(得分:1)

这是设计工具的问题。我认为Shell没有引用ModuleA的程序集,对吧?然后,该工具没有理由知道只有在加载Shell时才会加载ModuleA。我不知道这些项目是相关的,因此当它从设计器中的ModuleA加载视图时,它不会在Shell项目中查找样式。

一种解决方案是在ModuleA的每个视图中引用要在设计器中打开的共享样式字典,但这不是一个非常好的解决方案,因为它是代码重复。如果您使用Expression Blend,另一个解决方案可能是使用design-time dictionaries,但我不知道Visual Studio设计器是否有这样的东西。

答案 1 :(得分:0)

我可以解决同样的问题。我已经看到一些Prism应用程序是一个“通用”项目,用于定义“区域名称”常量等等。如果所有样式都定义在那里可能是更好的解决方案。这样每个模块都可以引用这些样式或创建特定于模块的模式。