【问题标题】:Silverlight: Reference ResourceDictionaries in external DLL'sSilverlight:在外部 DLL 中引用 ResourceDictionaries
【发布时间】:2011-07-12 22:34:17
【问题描述】:

我目前有一些针对各种不同 Silverlight 前端的不同解决方案,其中一个包含另一个专门用于样式资源的 Silverlight 项目。正如您可以想象的那样,我想将其分解为自己的解决方案并从 GUI 解决方案中引用它。在 WPF 中,您将引用通用样式 dll 并使用 pack 语法来加载 xaml 资源文件,但是在 Silverlight 中不支持该语法,并且它无法找到已在 App.xaml 中作为资源字典引用的 xaml 文件。有没有人设法做到这一点?

【问题讨论】:

    标签: silverlight


    【解决方案1】:

    Jeremy Likness 写了一个great article 使用主题项目。他还介绍了如何动态加载主题。我们在几个 Silverlight 项目中使用了这种技术并取得了巨大成功。

    我认为您需要将样式解决方案合并为 App.xaml 中的合并字典。

    <Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>                                
            <ResourceDictionary Source="/MyApp.MyThemeProject;component/Theme.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
    </Application.Resources>
    

    Best Practices for Themes in Modular Silverlight Applications

    【讨论】:

    • 感谢您的回复。这是我目前拥有的,它可以工作,因为主题项目在同一个解决方案中。现在,如果我将其分解为一个单独的解决方案并将其引用为 dll,它就无法再将 xaml 资源字典作为相对 uri 找到。
    【解决方案2】:

    我觉得你应该改用 SL 主题。 DLL 是按主题创建的,您可以轻松地在多个项目/模块中使用它。 Here is the like to into video

    【讨论】:

    • @jacksonakj 抱歉发了两次帖子。在我提交答案后,您的帖子出现在我面前。
    【解决方案3】:

    原来其中一本词典有问题,但现在已全部排序。感谢您的意见!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多