【问题标题】:Referencing xaml dictionary resources from pages in a class library从类库中的页面引用 xaml 字典资源
【发布时间】:2012-03-26 19:23:05
【问题描述】:

我在我的 WP7 应用程序中合并字典时遇到了一点问题,该应用程序包含很多页面,加载时间超过了 5 秒的市场限制,我不得不把大部分页面和 UI在单独的类库中的东西以切断加载时间,问题是页面件引用全局 app.xaml 中的静态资源,我试图将 App.xaml 中的 xaml 东西移动到类库中的单独资源字典中项目。我还在每个页面中引用了该资源字典文件。

 <phone:PhoneApplicationPage.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources.xaml" />
        </ResourceDictionary.MergedDictionaries>
                <Converters:TimeSpanToWeekAndDayConverter x:Key="weekAndDayConverter"/>
    </ResourceDictionary>
</phone:PhoneApplicationPage.Resources>

问题是我总是收到这个异常: 未能分配给属性“System.Windows.ResourceDictionary.Source”。

我还尝试将该资源字典的构建操作从 Page 更改为 Resource 到 Content (考虑到所有特定的路径语法考虑),但没有任何运气。 我希望有人有一个想法。 谢谢

【问题讨论】:

    标签: silverlight windows-phone-7 resourcedictionary


    【解决方案1】:
    1. 我认为您不需要移动资源 - 您可以将它们保留在 App 资源中。它应该可以工作。

    2. 您需要使用全名来引用字典。在这种情况下:

      Source="/AssemblyName;component/Resources.xaml"

    否则,它不知道如何找到它。

    【讨论】:

    • 当我在示例中说“AssemblyName”时,您需要提供用于库的实际 AssemblyName。另外,请确保您在属性中正确地将资源文件的类型标记为页面。
    • 谢谢哥们,我使用了完全合格的语法并将构建操作设置为页面但没有工作,我真的很困惑!奇怪!!
    • 当应用程序启动时您没有收到任何其他错误?您可以在应用程序的构造函数末尾添加一些测试代码来访问该资源字典中的某些资源吗?像 object o = Application.Resources["someKeyFromResourcesXaml"]
    • 谢谢,资源字典中声明的样式好像有问题,谢谢哥们的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多