チュートリアル : WPF アプリケーションのデバッグ
このチュートリアルでは、WPF デザイナーでシンプルな WPF (Windows Presentation Foundation) アプリケーションをデバッグする方法を次のコード例に示します。 XAML (Extensible Application Markup Language) 解析例外を解釈するには、[例外処理アシスタント] ダイアログ ボックスを使用します。
このチュートリアルでは次のタスクを行います。
WPF プロジェクトを作成する。
例外を解釈する。
子コントロールからの例外を解釈する。
このチュートリアルを終了すると、XAML 解析中に発生した例外を解釈する方法を理解できるようになります。
注意
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。 設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。 詳細については、「設定の操作」を参照してください。
必須コンポーネント
このチュートリアルを実行するには、次のコンポーネントが必要です。
- Visual Studio 2010.
プロジェクトの作成
最初にアプリケーションのプロジェクトを作成します。
プロジェクトを作成するには
Visual Basic または Visual C# で DebuggingExample という名前の WPF アプリケーション プロジェクトを作成します。 詳細については、「方法 : 新しい WPF アプリケーション プロジェクトを作成する」を参照してください。
WPF デザイナーで MainWindow.xaml が開きます。
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 ビューが開かなかった場合は、[マイ コードのみ] デバッグ オプションをオフにしてください。 詳細については、「方法 : マイ コードのみにステップ インする」を参照してください。
例外の解釈
この例外は 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 オブジェクトに変換できなかったことが原因で発生しました。
[OK] をクリックして [詳細の表示] ダイアログ ボックスを閉じます。
[OK] をクリックして [例外アシスタント] ダイアログ ボックスを閉じます。
[デバッグ] メニューの [デバッグの停止] をクリックします。
UserControl プロジェクトの作成
[例外アシスタント] ダイアログ ボックスを使用して、別のアセンブリにあるコントロールから発生したエラーを解釈することもできます。
プロジェクトを作成するには
XAML ビューで、Background プロパティの値を "Azure" に戻します。
ソリューションに DemoControlLibrary という名前の新しい WPF ユーザー コントロール ライブラリ プロジェクトを追加します。 詳細については、「方法 : WPF UserControl ライブラリ プロジェクトを作成する」を参照してください。
WPF デザイナーで UserControl1.xaml が開きます。
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 デザイナーで MainWindow.xaml を開きます。
次の XAML を <Window> 開始タグ内に挿入することにより、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 エラーとヘルプ」を参照してください。
参照
概念
チュートリアル : WPF デザイナーでの簡単な WPF アプリケーションの作成