演练:调试 WPF 应用程序

本演练演示如何使用 WPF 设计器调试简单的 Windows Presentation Foundation (WPF) 应用程序。 您将使用**“异常助手”**对话框来解释可扩展应用程序标记语言 (XAML) 分析异常。

在本演练中,您将执行下列任务:

  • 创建一个 WPF 项目。

  • 解释异常。

  • 解释子控件中出现的异常。

完成本演练后,您将知道如何解释在 XAML 分析期间出现的异常。

提示

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置

系统必备

您需要以下组件来完成本演练:

  • Visual Studio 2010.

创建项目

第一步是为应用程序创建项目。

创建项目

  1. 使用 Visual Basic 或 Visual C# 创建一个名为 DebuggingExample 的新 WPF 应用程序项目。 有关更多信息,请参见如何:创建新的 WPF 应用程序项目

    MainWindow.xaml 将在 WPF 设计器中打开。

  2. 在 XAML 视图中,将窗口的 Background 属性设置为“Azure”。

    <Window x:Class="DebuggingExample.MainWindow"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Background="Azure"
        Title="MainWindow" Height="300" Width="300">
        <Grid>
    
        </Grid>
    </Window> 
    

    在设计视图中,窗口的背景颜色将更新。

  3. 将“Azure”更改为“Azurer”并在“设计”视图中单击。

    “设计”视图将显示消息“文档包含一些错误,必须修复这些错误才能更新设计器。 请单击此处打开‘错误列表’”。

    而且,**“错误列表”**窗口将显示“标记无效”错误消息。

  4. 从**“调试”菜单中选择“启动调试”**。

    此时,应用程序启动,XAML 视图打开,并出现**“异常助手”**对话框,如下面的插图所示。

    显示 XAML 分析错误的异常助手

    注意   如果在“异常助手”出现时未打开 XAML 视图,请关闭**“仅我的代码”**调试选项。 有关更多信息,请参见如何:单步执行“仅我的代码”

解释异常

异常是一个 XAML 分析错误。 **“异常助手”**对话框会显示有关该错误的信息,可以使用这些信息来解释错误原因。

解释异常

  1. 在**“异常助手”对话框中单击“查看详细信息…”**链接。

    将打开**“查看详细信息”**对话框。

  2. 在**“异常快照”部分中,展开“System.Windows.Markup.XamlParseException”**项。

    “LineNumber”项显示“3”“LinePosition”项显示“5”

  3. 单击**“消息”**项。

  4. 该行的末尾显示一个向下箭头按钮。 单击该向下箭头按钮查看整个错误消息,如下图所示。

    显示 XAML 分析错误的异常助手

    该消息内容为“无法将特性‘Background’中的值转换为‘System.Windows.Media.Brush’类型的对象。 标记无效。 标记文件‘DebuggingExample;component/MainWindow.xam’中行 3 位置 5 的对象‘DebuggingExample.MainWindow’处的错误。”

  5. 此异常描述的是在 MainWindow.xaml 文件的第五行遇到的 XAML 分析错误。

    引发该异常的原因是用于 BrushTypeConverter 未能将“Azurer”字符串转换为 Brush 对象。

  6. 单击**“确定”关闭“查看详细信息”**对话框。

  7. 单击**“确定”关闭“异常助手”**对话框。

  8. 从**“调试”菜单中选择“停止调试”**。

创建 UserControl 项目

可以使用**“异常助手”**对话框来解释在单独的程序集中的控件中引发的错误。

创建项目

  1. 在 XAML 视图中,将 Background 属性的值重新更改为“Azure”。

  2. 向解决方案中添加一个名为 DemoControlLibrary 的新 WPF 用户控件库项目。 有关更多信息,请参见如何:创建 WPF UserControl 库项目

    将在 WPF 设计器中打开 UserControl1.xaml。

  3. 在 XAML 视图中,将窗口的 Background 属性设置为“Plum”。

    <UserControl x:Class="DemoControlLibrary1.UserControl1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Background="Plum"
        Height="300" Width="300">
        <Grid>
    
        </Grid>
    </UserControl>
    
  4. 生成解决方案。

  5. 在**“解决方案资源管理器”**中的 DebuggingExample 项目中,添加一个对 DemoControlLibrary 项目的引用。

  6. 在 WPF 设计器中打开 MainWindow.xaml。

  7. 通过在 <Window> 开始标记中插入以下 XAML 来映射 DemoControlLibrary 命名空间。 有关更多信息,请参见如何:将命名空间导入 XAML

    xmlns:d="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  8. 在 <Grid> 开始标记之后插入以下 XAML。

    <d:UserControl1 />
    

    “设计”视图将更新为新背景颜色。

  9. 在 WPF 设计器中打开 UserControl1.xaml。

  10. 在 XAML 视图中,将“Plum”更改为“Plumr”。

  11. 从**“调试”菜单中选择“启动调试”**。

    此时,应用程序启动,XAML 视图打开到 UserControl1.xaml,并出现**“异常助手”**对话框。

    注意   如果在“异常助手”出现时未打开 XAML 视图,请关闭**“仅我的代码”**调试选项。 有关更多信息,请参见如何:单步执行“仅我的代码”

后续步骤

  • 还可以使用**“错误列表”**窗口在设计时查看 XAML 分析错误。 有关更多信息,请参见 XAML 错误和帮助

请参见

概念

XAML 错误和帮助

异常处理(调试)

演练:用 WPF 设计器生成简单的 WPF 应用程序

其他资源

WPF 设计器的错误消息参考

使用 Visual Studio 进行调试

使用 WPF 设计器中的控件