逐步解說:偵錯 WPF 應用程式
本逐步解說示範如何使用 WPF Designer偵錯一個簡單的 Windows Presentation Foundation (WPF) 應用程式。 您要使用 [例外狀況助理] 對話方塊來解譯可延伸應用程式標記語言 (XAML) 剖析例外狀況。
在這個逐步解說中,您會執行下列工作:
建立 WPF 專案。
解譯例外狀況。
解譯來自子控制項的例外狀況。
完成時,您就會了解如何解譯 XAML 剖析期間所發生的例外狀況。
注意
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定。
必要條件
您需要下列元件才能完成此逐步解說:
- Visual Studio 2012 RC.
建立專案
第一步就是建立應用程式的專案。
若要建立專案
在 Visual Basic 或 Visual C# 中,建立名為 DebuggingExample 的新 WPF 應用程式專案。 如需詳細資訊,請參閱 HOW TO:建立新的 WPF 應用程式專案。
MainWindow.xaml 隨即在 WPF Designer中開啟。
在 [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>
視窗的背景色彩會在 [設計] 檢視中更新。
將 "Azure" 變更為 "Azurer",並在 [設計] 檢視中按一下。
[設計] 檢視會顯示訊息「文件包含錯誤,必須修正後才能更新設計工具。 請按一下這裡開啟 [錯誤清單]。」
此外,[錯誤清單] 視窗也會顯示「語彙基元無效」錯誤訊息。
從 [偵錯] 功能表中選取 [開始偵錯]。
應用程式會啟動、[XAML] 檢視會開啟,而且 [例外狀況助理] 對話方塊隨即會出現,如下圖所示。
注意:如果在 [例外狀況助理] 出現時沒有開啟 [XAML] 檢視,請關閉 [Just My Code] 偵錯選項。 如需詳細資訊,請參閱 HOW TO:逐步執行 Just My Code。
解譯例外狀況
此例外狀況是一個 XAML 剖析錯誤。 [例外狀況助理] 對話方塊會顯示錯誤的相關資訊,您可以用來解譯錯誤的原因。
若要解譯例外狀況
在 [例外狀況助理] 對話方塊中,按一下 [檢視詳細資料] 連結。
[檢視詳細資料] 對話方塊隨即開啟。
在 [例外狀況快照] 區段中,展開 [System.Windows.Markup.XamlParseException] 項目。
[LineNumber] 項目會顯示 [3],[LinePosition] 項目會顯示 [5]。
按一下 [訊息] 項目。
向下箭號按鈕隨即出現在行尾。 按一下向下箭號按鈕,查看如下圖所示的完整錯誤訊息。
訊息指出「無法將屬性 'Background' 中的值轉換為型別為 'System.Windows.Media.Brush' 的物件。 語彙基元無效。 標記檔案 'DebuggingExample;component/MainWindow.xaml' 行 3 位置 5 的 'DebuggingExample.MainWindow' 物件發生錯誤。」
這個例外狀況描述 MainWindow.xaml 檔案中行 5 的位置上,所遭遇的 XAML 剖析錯誤。
因為 Brush 的 TypeConverter 無法將 "Azurer" 字串轉換成 Brush 物件,所以引發這個例外狀況。
按一下 [確定] 關閉 [檢視詳細資料] 對話方塊。
按一下 [確定] 關閉 [例外狀況助理] 對話方塊。
選取 [偵錯] 功能表中的 [停止偵錯]。
建立 UserControl 專案
您可以使用 [例外狀況助理] 對話方塊,解譯個別組件中控制項所引發的錯誤。
若要建立專案
在 [XAML] 檢視中,將 Background 屬性的值變更為 "Azure"。
將名為 DemoControlLibrary 的新 WPF 使用者控制項程式庫專案加入至方案。 如需詳細資訊,請參閱 HOW TO:建立 WPF UserControl 程式庫專案。
UserControl1.xaml 會在 WPF Designer中開啟。
在 [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 Designer中開啟 MainWindow.xaml。
將下列 XAML 插入至 <Window> 開頭標記,以對應 DemoControlLibrary 命名空間。 如需詳細資訊,請參閱 HOW TO:將命名空間匯入 XAML。
xmlns:d="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
將下列 XAML 插入至 <Grid> 開頭標記之後。
<d:UserControl1 />
[設計] 檢視會更新為新的背景色彩。
在 WPF Designer中開啟 UserControl1.xaml。
在 [XAML] 檢視中,將 "Plum" 變更為 "Plumr"。
從 [偵錯] 功能表中選取 [開始偵錯]。
應用程式會啟動、[XAML] 檢視會開啟至 UserControl1.xaml,而且 [例外狀況助理] 對話方塊隨即會出現。
注意:如果在 [例外狀況助理] 出現時沒有開啟 [XAML] 檢視,請關閉 [Just My Code] 偵錯選項。 如需詳細資訊,請參閱 HOW TO:逐步執行 Just My Code。
後續步驟
- 您也可以使用 [錯誤清單] 視窗,在設計階段檢視 XAML 剖析錯誤。 如需詳細資訊,請參閱 XAML 錯誤和說明。
請參閱
概念
逐步解說:使用 WPF 設計工具建置簡單的 WPF 應用程式