Silverlight - 管理大量主题

时间:2009-10-13 13:01:42

标签: silverlight module themes prism

我在源代码管理下有一个基于PRISM的silverlight解决方案。关于主题我有一个每个主题的项目,例如'Theme_Summer','Theme_Winter'项目。实际上,这些主题项目可能超过30个。每个主题项目都包含一系列资源词典,用于保存样式等以及所需的图像,声音等。

这些项目中的每一个都有一个Main.xaml合并资源字典,它将该主题项目中的所有资源联系在一起。然后我的主应用程序只使用它需要使用的任何主题项目的Main.xaml资源字典。

我遇到的问题是我需要在我的解决方案中使用这些30个左右的主题,因此它们仍然处于源代码控制和可管理状态但是它们都被编译到XAP中,这显然不是很好,因为应用程序部署在某处并且只需要1个主题

我的问题是人们认为什么是合适的方法?为每个主题提供单独的解决方案,以便将其编译为单独的XAP并动态加载,这看起来像很多工作。当它们是同一解决方案的一部分时,有没有办法外部加载这些?

感谢您的时间

1 个答案:

答案 0 :(得分:1)

免责声明:我推荐的内容对您来说可能不是最好的。我只对你的项目有所了解,对你告诉客户(或老板)你将要提供的内容一无所知。

如果您要使用x(其中x介于2到30之间)主题。您可能希望花一些时间构建支持x主题的框架。由于每次添加新主题时都不想更改此框架,因此PRISM非常适合您。

我会将所有内容都移到x-ish silverlight类库中。显然,你可以将类似的主题打包在一起,比如季节或假期,这会使项目数量减少。现在不要忘记您的Visual Studio解决方案中可以包含多个项目(只需右键单击项目并选择Add-> New Project)。

使用PRISM相当简单,有很多资源可以帮助您动态加载xap文件。听起来你可能最终想要摆脱与编译一堆类似逻辑相关的问题。

  

当它们是同一解决方案的一部分时,有没有办法外部加载这些?

答案是肯定的!您必须将您的各个silverlight应用程序编译为XAP文件并使用PRISM加载它们。

这可能看起来很多工作,但是当你创建了它们中的前几个时,它就变成了第二天性,并且很容易在你的列表中添加更多XAP。

http://development-guides.silverbaylabs.org/Video/Silverlight-Prism

http://msdn.microsoft.com/en-us/magazine/dd943055.aspx

http://www.sparklingclient.com/prism-silverlight/