我在Windows手机应用程序中使用Merge Dictionaries遇到了一个非常奇怪的问题。我从主页导航到辅助页面(第1页),点击一个非常简单的按钮
private void Button_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
}
第一次导航是正确的。第二次(再次单击并单击按钮)给出了一个错误“在合并的资源字典中检测到的循环”。我创建了一个非常简单的页面,只需添加MergedDictionary + resourcedictionary即可减少问题。我的Page1.xaml如下:
<phone:PhoneApplicationPage.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins\Page1Skin.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</phone:PhoneApplicationPage.Resources>
答案 0 :(得分:1)
对于necroposting很抱歉,但这个主题只是整个网络搜索中的一个,在WP8.0(Silverlight)上讨论这个问题。
上面的解决方案对我没有帮助,所以我找到了另一个:
<phone:PhoneApplicationPage.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MyProject.WP;component/Styles/MyPageStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</phone:PhoneApplicationPage.Resources>
其中:
在这种情况下,您也可以从其他项目中选择样式,只需要在源代码中更改项目名称。
答案 1 :(得分:0)
找到它。我的XAML中有一个小错误。 ResourceDictionary路径中的反斜杠必须是正斜杠。
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins\Page1Skin.xaml"/>
</ResourceDictionary.MergedDictionaries>
更换它解决了我的问题。不知道为什么手机因此错误而失败!