首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找生成XamlParseException的XAML文件

如何查找生成XamlParseException的XAML文件
EN

Stack Overflow用户
提问于 2015-12-11 19:02:52
回答 1查看 2.3K关注 0票数 4

我在运行时从一个C# WPF应用程序中得到以下错误:

System.Windows.Markup.XamlParseException类型的第一次例外发生在PresentationFramework.dll中 附加信息:“Set属性'System.Windows.Controls.ContentControl.Content‘引发异常”。行号'6‘和线位置'6’。

如何找到与此相关的文件?Visual解决方案包含两个XAML文件,即app.xamlMainWindow.xaml

我在Windows7上使用VS 2010,应用程序的目标是.NET 4.0。

更新:

根据Kasper的有益建议,我详细地展示了这个例外,这就是它所显示的:

根据那里的信息,我能够收集到某个DLL丢失了。提供DLL解决了这个问题,但我还有其他XAML解析错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-11 19:09:46

在代码隐藏中,XAML代码在自动生成的方法InitializeComponent中进行解析。在窗口对象的构造函数中调用此方法。因此,要了解有关异常的更多细节,请将对InitializeComponent的调用放在try/catch块中。这样,您就可以访问无用的XamlParseException,也可以访问它的InnerExceptions和StackTrace。

更新!可以使用MessageDialog调用内部异常。

代码语言:javascript
复制
public partial class Window1 : System.Windows.Window
{
public Window1()
{
  try

  {
    InitializeComponent();
  }
  catch ( Exception ex )
  {
  // Log error (including InnerExceptions!)
  // Handle exception
   MessageDialog dialog = new MessageDialog(ex.InnerException);
   dialog.ShowAsync();

  }
 }
}

希望有帮助:)

还有另一个窍门:

  • 打开Visual中的“异常”窗口(调试/异常)。
  • 点击“添加”
  • 加入"System.Windows.Markup.XamlParseException“
  • 选中该复选框以在抛出时中断此异常。
  • 击中F5!

您会发现所捕获的XamlParseException更具描述性,并将在xaml文件中给出正确的位置。

(请告诉我这是否更容易:)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34230728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档