共用方式為


逐步解說:偵錯 WPF 應用程式

本逐步解說示範如何使用 WPF Designer偵錯一個簡單的 Windows Presentation Foundation (WPF) 應用程式。 您要使用 [例外狀況助理] 對話方塊來解譯可延伸應用程式標記語言 (XAML) 剖析例外狀況。

在這個逐步解說中,您會執行下列工作:

  • 建立 WPF 專案。

  • 解譯例外狀況。

  • 解譯來自子控制項的例外狀況。

完成時,您就會了解如何解譯 XAML 剖析期間所發生的例外狀況。

注意

根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱 Visual Studio 設定

必要條件

您需要下列元件才能完成此逐步解說:

  • Visual Studio 2012 RC.

建立專案

第一步就是建立應用程式的專案。

若要建立專案

  1. 在 Visual Basic 或 Visual C# 中,建立名為 DebuggingExample 的新 WPF 應用程式專案。 如需詳細資訊,請參閱 HOW TO:建立新的 WPF 應用程式專案

    MainWindow.xaml 隨即在 WPF Designer中開啟。

  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] 檢視,請關閉 [Just My Code] 偵錯選項。 如需詳細資訊,請參閱 HOW TO:逐步執行 Just My Code

解譯例外狀況

此例外狀況是一個 XAML 剖析錯誤。 [例外狀況助理] 對話方塊會顯示錯誤的相關資訊,您可以用來解譯錯誤的原因。

若要解譯例外狀況

  1. 在 [例外狀況助理] 對話方塊中,按一下 [檢視詳細資料] 連結。

    [檢視詳細資料] 對話方塊隨即開啟。

  2. 在 [例外狀況快照] 區段中,展開 [System.Windows.Markup.XamlParseException] 項目。

    [LineNumber] 項目會顯示 [3],[LinePosition] 項目會顯示 [5]。

  3. 按一下 [訊息] 項目。

  4. 向下箭號按鈕隨即出現在行尾。 按一下向下箭號按鈕,查看如下圖所示的完整錯誤訊息。

    顯示 XAML 剖析錯誤的例外狀況助理

    訊息指出「無法將屬性 'Background' 中的值轉換為型別為 'System.Windows.Media.Brush' 的物件。 語彙基元無效。 標記檔案 'DebuggingExample;component/MainWindow.xaml' 行 3 位置 5 的 'DebuggingExample.MainWindow' 物件發生錯誤。」

  5. 這個例外狀況描述 MainWindow.xaml 檔案中行 5 的位置上,所遭遇的 XAML 剖析錯誤。

    因為 BrushTypeConverter 無法將 "Azurer" 字串轉換成 Brush 物件,所以引發這個例外狀況。

  6. 按一下 [確定] 關閉 [檢視詳細資料] 對話方塊。

  7. 按一下 [確定] 關閉 [例外狀況助理] 對話方塊。

  8. 選取 [偵錯] 功能表中的 [停止偵錯]。

建立 UserControl 專案

您可以使用 [例外狀況助理] 對話方塊,解譯個別組件中控制項所引發的錯誤。

若要建立專案

  1. 在 [XAML] 檢視中,將 Background 屬性的值變更為 "Azure"。

  2. 將名為 DemoControlLibrary 的新 WPF 使用者控制項程式庫專案加入至方案。 如需詳細資訊,請參閱 HOW TO:建立 WPF UserControl 程式庫專案

    UserControl1.xaml 會在 WPF Designer中開啟。

  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 Designer中開啟 MainWindow.xaml。

  7. 將下列 XAML 插入至 <Window> 開頭標記,以對應 DemoControlLibrary 命名空間。 如需詳細資訊,請參閱 HOW TO:將命名空間匯入 XAML

    xmlns:d="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  8. 將下列 XAML 插入至 <Grid> 開頭標記之後。

    <d:UserControl1 />
    

    [設計] 檢視會更新為新的背景色彩。

  9. 在 WPF Designer中開啟 UserControl1.xaml。

  10. 在 [XAML] 檢視中,將 "Plum" 變更為 "Plumr"。

  11. 從 [偵錯] 功能表中選取 [開始偵錯]。

    應用程式會啟動、[XAML] 檢視會開啟至 UserControl1.xaml,而且 [例外狀況助理] 對話方塊隨即會出現。

    注意:如果在 [例外狀況助理] 出現時沒有開啟 [XAML] 檢視,請關閉 [Just My Code] 偵錯選項。 如需詳細資訊,請參閱 HOW TO:逐步執行 Just My Code

後續步驟

  • 您也可以使用 [錯誤清單] 視窗,在設計階段檢視 XAML 剖析錯誤。 如需詳細資訊,請參閱 XAML 錯誤和說明

請參閱

概念

XAML 錯誤和說明

例外狀況處理 (偵錯)

逐步解說:使用 WPF 設計工具建置簡單的 WPF 應用程式

其他資源

WPF 設計工具的錯誤訊息參考

Visual Studio 偵錯

使用 WPF 設計工具中的控制項