我正在构建一个通用的 WP7 程序集,它将显示我的应用程序的常见帮助/关于信息,每个应用程序程序集将指定一对 StackPanel,其中包含一些应用程序特定信息(以及调用 em Legal.xaml 和 WhatsNew.xaml)。
理想情况下,这些应用程序特定的 XAML 文件应该是纯文本形式(相对于在代码中实例化的东西),因此可以通过 HTTP 或作为嵌入式资源字符串加载。
加载 XAML 工作正常,直到我尝试将一些样式定义分解到另一个文件中,然后 XamlReader.Load() 失败并显示:“属性 AboutPageDocs/CommonStyles.xaml 值超出范围。[行:43 位置:45]”</p>
加载 Legal.xaml 时会发生该错误,当我们环顾四周时,我们会发现我试图加载现在包含自定义样式的 ResourceDictionary 的位置:
<StackPanel.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="AboutPageDocs/CommonStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</StackPanel.Resources>
这是错误...如果只是复制并粘贴 StackPanel 代码(在运行时动态加载)并将其放入 UserControl... 一切正常。
不必在 Legal.xaml 和 WhatsNew.xaml 中定义我的内联样式...有没有办法让 XamlReader.Load() 属性查找 CommonStyles.xaml?
考虑到源路径不正确,我尝试通过两个程序集将 CommonStyles.xaml 的副本放置在不同的位置......以及尝试使用 pack:// uri 语法......到目前为止都无济于事.
我错过了什么?