다음을 통해 공유


연습: WPF 응용 프로그램 디버깅

업데이트: 2007년 11월

이 연습에서는 WPF Designer를 사용하여 간단한 WPF(Windows Presentation Foundation) 응용 프로그램을 디버깅하는 방법을 보여 줍니다. 예외 도우미 대화 상자를 사용하여 XAML(Extensible Application Markup Language) 구문 분석 예외를 해석하게 됩니다.

이 연습에서는 다음 작업을 수행합니다.

  • WPF 프로젝트를 만듭니다.

  • 예외를 해석합니다.

  • 자식 컨트롤의 예외를 해석합니다.

이 연습을 마치면 XAML 구문 분석 도중 발생하는 예외를 해석하는 방법을 이해하게 됩니다.

참고:

실제 설정이나 버전에 따라서 화면에 나타나는 대화 상자와 메뉴 명령이 도움말의 설명과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

  • Visual Studio 2008.

프로젝트 만들기

첫 번째 단계는 응용 프로그램의 프로젝트를 만드는 것입니다.

프로젝트를 만들려면

  1. Visual Basic 또는 Visual C#에서 DebuggingExample이라는 새 WPF 응용 프로그램 프로젝트를 만듭니다. 자세한 내용은 방법: 새 WPF 응용 프로그램 프로젝트 만들기를 참조하십시오.

    WPF Designer에 Window1.xaml이 열립니다.

  2. 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> 
    

    디자인 뷰에서 창의 배경색이 업데이트됩니다.

  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/window1.xaml'의 3 줄 5 위치의 개체 'DebuggingExample.Window1'에서 오류가 발생했습니다."

  5. 이 예외는 Window1.xaml 파일의 5번 줄에서 발생한 XAML 구문 분석 오류를 나타냅니다.

    BrushTypeConverter에서 문자열 "Azurer"를 Brush 개체로 변환할 수 없으므로 예외가 발생합니다.

  6. 확인을 클릭하여 자세히 보기 대화 상자를 닫습니다.

  7. 확인을 클릭하여 예외 도우미 대화 상자를 닫습니다.

  8. 디버그 메뉴에서 디버깅 중지를 선택합니다.

UserControl 프로젝트 만들기

예외 도우미 대화 상자를 사용하여 별도의 어셈블리에 있는 컨트롤에서 발생한 오류를 해석할 수 있습니다.

프로젝트를 만들려면

  1. XAML 뷰에서 Background 속성의 값을 다시 "Azure"로 변경합니다.

  2. 솔루션에 DemoControlLibrary라는 새 WPF 사용자 정의 컨트롤 라이브러리 프로젝트를 추가합니다. 자세한 내용은 방법: 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. 솔루션 탐색기에서 DemoControlLibrary 프로젝트에 대한 참조를 DebuggingExample 프로젝트에 추가합니다.

  6. WPF Designer에서 Window1.xaml을 엽니다.

  7. <Window> 여는 태그에 다음 XAML을 삽입하여 DemoControlLibrary 네임스페이스를 매핑합니다. 자세한 내용은 방법: 네임스페이스를 XAML로 가져오기를 참조하십시오.

    xmlns:d="clr-namespace:DemoControlLibrary;assembly=DemoControlLibrary"
    
  8. <Grid> 여는 태그 뒤에 다음 XAML을 삽입합니다.

    <d:UserControl1 />
    

    디자인 뷰가 새 배경색으로 업데이트됩니다.

  9. WPF Designer에서 UserControl1.xaml을 엽니다.

  10. XAML 뷰에서 "Plum"을 "Plumr"로 변경합니다.

  11. 디버그 메뉴에서 디버깅 시작을 선택합니다.

    응용 프로그램이 시작되고 XAML 뷰에 UserControl1.xaml이 열리며 예외 도우미 대화 상자가 표시됩니다.

    참고   예외 도우미가 나타날 때 XAML 뷰가 열리지 않는 경우 내 코드만 디버깅 옵션을 해제합니다. 자세한 내용은 방법: 내 코드만 한 단계씩 실행을 참조하십시오.

다음 단계

  • 오류 목록 창을 사용하여 디자인 타임에 XAML 구문 분석 오류를 봅니다. 자세한 내용은 XAML 오류 및 도움말을 참조하십시오.

참고 항목

개념

XAML 오류 및 도움말

예외 처리(디버깅)

연습: WPF Designer를 사용하여 간단한 WPF 응용 프로그램 만들기

기타 리소스

WPF Designer의 오류 메시지 참조

Visual Studio의 디버깅

WPF 디자이너에서의 컨트롤 작업