【问题标题】:XamlParseException when consuming a Page from a library使用库中的页面时出现 XamlParseException
【发布时间】:2012-10-15 11:54:10
【问题描述】:

我最近开始了一个应该针对 Windows RT (C#) 的项目 有一些 Silverlight 和 WPF 的背景知识,我创建了一个程序集(库),它应该包含我的一些用户控件、页面等以供以后重用。

我已向该程序集添加了一个空页面。

每当我导航到该页面(使用导航机制)时,都会正确调用构造函数,但是在 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

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

还有其他人遇到这种情况吗?

【问题讨论】:

  • 异常表示该错误与MyPage类的构造函数中的第20行有些相关。这一行包含什么?
  • InitializeComponent()...

标签: microsoft-metro winrt-xaml xamlparseexception


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

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

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

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

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

    【讨论】:

    • 有意思,今天晚些时候试试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    相关资源
    最近更新 更多