从库中使用Page时出现XamlParseException

时间:2012-10-15 11:54:11

标签: microsoft-metro winrt-xaml xamlparseexception

我最近开始研究一个应该针对Windows RT(C#)的项目 在Silverlight&中有一些背景知识WPF我已经创建了一个程序集(库),它应该包含我的一些UserControls,Pages等,以便以后重复使用。

我已经为那个组件添加了一个空页面。

每当我导航到该页面时(使用导航机制),都会正确调用构造函数,但在InitializeComponent()调用期间会出现非描述性的XamlParseException。

Message: XAML parsing failed
InnerException : null
StackTrace:    at Windows.UI.Xaml.Application.LoadComponent(Object component, Uri resourceLocator, ComponentResourceLocation componentResourceLocation)
   at Project.Modules.ImagesModule.Pages.CameraPage.InitializeComponent() in c:\Users\misztalm\Documents\Visual Studio 2012\Projects\VirtualEye\trunk\Sources\Project.Modules.ImagesModule\obj\Debug\Pages\MyPage.g.i.cs:line 30
   at Project.Modules.ImagesModule.Pages.MyPage..ctor() in c:\Users\misztalm\Documents\Visual Studio 2012\Projects\VirtualEye\trunk\Sources\Project.Modules.ImagesModule\Pages\MyPage.xaml.cs:line 20

我无法确定原因,所以我决定寻求一些指导。

其他人遇到这个?

2 个答案:

答案 0 :(得分:1)

显然,Win RT的代码生成存在错误。此博客文章介绍了如何解决此问题。为我工作。

http://blog.excastle.com/2012/09/06/xamlparseexception-in-winrt/

答案 1 :(得分:0)

我使用以下方案遇到类似事件:

1 - 为winRT创建项目(创建解决方案)

2 - 将另一个winRT项目添加到解决方案

3 - 在项目2中创建UserControl

4 - 将控件放在项目1中的页面上。

5 - 运行应用程序获取Xaml分析程序错误

我们用于满足不同业务需求的解决方案有两个:

1 - 将控件从Project 2复制到名为Controls的SubFolder / SubNamespace中的主Project。当userControls位于将使用它们的项目时,问题不会保留。

2 - 如果必须将项目2中的控件与项目1分开      跨库使用的控件必须是模板化用户控件类型,而不是更通用的用户控件类型。

我并不声称知道为什么会发生这种情况......只是在XAML编译器的眼中这两种修改都是可以接受的。