2

我最近开始了一个应该针对 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

我无法确定造成这种情况的原因,所以我决定寻求一些指导。

还有其他人遇到这个吗?

4

2 回答 2

1

显然,Win RT 的代码生成存在错误。这篇博文描述了如何解决这个问题。为我工作。

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

于 2012-10-15T13:31:33.800 回答
0

我使用以下场景遇到了类似的事件:

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

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

3 - 在项目 2 中创建一个用户控件

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

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

我们针对不同的业务需求使用了 2 个解决方案:

1 - 将项目 2 中的控件复制到名为 Controls 的子文件夹/子命名空间中的主项目。当用户控件位于将使用它们的项目中时,问题就不会存在。

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

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

于 2012-10-15T18:40:06.357 回答