更新:2007 年 11 月
本演练演示如何使用 WPF 设计器调试简单的 Windows Presentation Foundation (WPF) 应用程序。您将使用“异常助手”对话框来解释可扩展应用程序标记语言 (XAML) 分析异常。
在本演练中,您将执行下列任务:
创建一个 WPF 项目。
解释异常。
解释子控件中出现的异常。
完成本演练后,您将知道如何解释在 XAML 分析期间出现的异常。
![]() |
---|
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 |
先决条件
您需要以下组件来完成本演练:
- Visual Studio 2008。
创建项目
第一步是为应用程序创建项目。
创建项目
使用 Visual Basic 或 Visual C# 创建一个名为 DebuggingExample 的新 WPF 应用程序项目。有关更多信息,请参见 如何:创建新的 WPF 应用程序项目。
Window1.xaml 在 WPF 设计器中打开。
在 XAML 视图中,将窗口的 Background 属性设置为“Azure”。
<Window x:Class="DebuggingExample.Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Background="Azure" Title="Window1" Height="300" Width="300"> <Grid> </Grid> </Window>
在设计视图中,窗口的背景颜色将更新。
将“Azure”更改为“Azurer”并在“设计”视图中单击。
“设计”视图将显示消息“文档包含一些错误,必须修复这些错误才能更新设计器。请单击此处打开‘错误列表’”。
而且,“错误列表”窗口将显示“标记无效”错误消息。
从“调试”菜单中选择“启动调试”。
此时,应用程序启动,XAML 视图打开,并出现“异常助手”对话框,如下面的插图所示。
注意 如果在“异常助手”出现时未打开 XAML 视图,请关闭“仅我的代码”调试选项。有关更多信息,请参见如何:单步执行“仅我的代码”。
解释异常
异常是一个 XAML 分析错误。“异常助手”对话框会显示有关该错误的信息,可以使用这些信息来解释错误原因。
解释异常
在“异常助手”对话框中单击“查看详细信息…”链接。
将打开“查看详细信息”对话框。
在“异常快照”部分中,展开“System.Windows.Markup.XamlParseException”项。
“LineNumber”项显示“3”,“LinePosition”项显示“5”。
单击“消息”项。
该行的末尾显示一个向下箭头按钮。单击该向下箭头按钮查看整个错误消息,如下图所示。
该消息内容为“无法将属性‘Background’中的值转换为‘System.Windows.Media.Brush’类型的对象。标记无效。标记文件‘DebuggingExample;component/window1.xaml’中行 3 位置 5 的对象‘DebuggingExample.Window1’处的错误。”
此异常描述的是在 Window1.xaml 文件的第五行遇到的 XAML 分析错误。
引发该异常的原因是用于 Brush 的 TypeConverter 无法将“Azurer”字符串转换为 Brush 对象。
单击“确定”关闭“查看详细信息”对话框。
单击“确定”关闭“异常助手”对话框。
从“调试”菜单中选择“停止调试”。
创建 UserControl 项目
可以使用“异常助手”对话框来解释在单独的程序集中的控件中引发的错误。
创建项目
在 XAML 视图中,将 Background 属性的值重新更改为“Azure”。
向解决方案中添加一个名为 DemoControlLibrary 的新 WPF 用户控件库项目。有关更多信息,请参见如何:创建 WPF UserControl 库项目。
UserControl1.xaml 在 WPF 设计器中打开。
在 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>
生成解决方案。
在“解决方案资源管理器”中的 DebuggingExample 项目中,添加一个对 DemoControlLibrary 项目的引用。
在 WPF 设计器中打开 Window1.xaml。
通过在 <Window> 开始标记中插入以下 XAML 来映射 DemoControlLibrary 命名空间。有关更多信息,请参见如何:将命名空间导入 XAML。
xmlns:d="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
在 <Grid> 开始标记之后插入以下 XAML。
<d:UserControl1 />
“设计”视图将更新为新背景颜色。
在 WPF 设计器中打开 UserControl1.xaml。
在 XAML 视图中,将“Plum”更改为“Plumr”。
从“调试”菜单中选择“启动调试”。
此时,应用程序启动,XAML 视图打开到 UserControl1.xaml,并出现“异常助手”对话框。
注意 如果在“异常助手”出现时未打开 XAML 视图,请关闭“仅我的代码”调试选项。有关更多信息,请参见如何:单步执行“仅我的代码”。
后续步骤
- 还可以使用“错误列表”窗口在设计时查看 XAML 分析错误。有关更多信息,请参见 XAML 错误和帮助。