我有一个包含2个项目的解决方案。首先是主要应用程序,第二个是控件。在Generic.xaml中,在Silverlight项目中,可以执行
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyLibNamespace;component/Themes/SomeFolder/MyControl.xaml" />
</ResourceDictionary.MergedDictionaries>
这似乎不适用于Windows应用商店应用程序类库。 ReSharper想要文件路径为“/Themes/SomeFolder/MyControl.xaml”,但我仍然得到一个XamlParseException:无法分配给属性'Windows.UI.Xaml.ResourceDictionary.Source'。 [行:7位置:36]
答案 0 :(得分:3)
在WinRT中没有“其他类/程序集中的Xaml文件”这样的东西。换句话说:“EmbeddedResource”或“Resource”根本不存在于WinRT组件中(是的,这是一种痛苦)。这也是将\ Themes \ Generic.xaml复制到输出目录中的原因。)
答案 1 :(得分:1)
请参阅回答here on msdn
如果你有一个名为“CustomControl”的dll,其ResourceDictionary名为“Styles.xaml”,那么App.xaml应该包含
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///CustomControls/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
答案 2 :(得分:0)
如果将ResourceDictionary
来源设置为UserControl
的XAML,则可以重现相同的行为。但是,如果引用的XAML文件是专用的ResourceDictionary
,则在 ms-appx之后使用 ms-appx:/// 方案访问内部样式没有问题: /// PROJECT_NAME / PATH_TO_XAML.xaml 模式。
ResourceDictionary
是否有可能与UserControl
分开,如果是这样的话?