Share via


XAML デザイナーでプロジェクト コードをデバッグまたは無効化する

ハンドルされない例外が XAML デザイナーで起こる原因の多くは、プロジェクト コードがアクセスしようとするプロパティまたはメソッドが、デザイナーでアプリケーションを実行するときに、返す値や動作方法が変わることにあります。 Visual Studio の別のインスタンスでプロジェクト コードをデバッグしてこれらの例外を解決するか、デザイナーでプロジェクトのコードを無効にして、一時的に例外を回避することができます。

プロジェクト コードには次のものが含まれます。

  • カスタム コントロールおよびユーザー コントロール

  • クラス ライブラリ

  • 値コンバーター

  • プロジェクト コードから生成されるデザイン時のデータに対するバインド

プロジェクト コードが無効になると、Visual Studio によってプレースホルダーが表示されます。 たとえば、データが使用できなくなったバインドのプロパティ名などのプレースホルダーや、実行されなくなったコントロールのプレースホルダーが表示されます。

Unhandled exception dialog

プロジェクト コードが例外の原因かどうかを判断するには

  1. ハンドルされない例外のダイアログで、 [ここをクリックして、デザイナーを再読み込み] リンクを選びます。

  2. メニュー バーで、[デバッグ]>[デバッグ開始] の順に選択して、アプリケーションを実行します。

    アプリケーションがビルドされ、正常に実行される場合は、デザイナーで実行されているプロジェクト コードによってデザイン時例外が発生する可能性があります。

デザイナーで実行されているプロジェクト コードをデバッグするには

  1. ハンドルされない例外のダイアログで、 [ここをクリックしてプロジェクト コードの実行を無効にし、デザイナーを再読み込み] リンクを選びます。

  2. Windows タスク マネージャーで、 [タスクの終了] ボタンを選び、現在実行している Visual Studio XAML デザイナーのすべてのインスタンスを閉じます。

    XAML designer instances in TaskManager

  3. Visual Studio で、デバッグするコードまたはコントロールを含む XAML ページを開きます。

  4. Visual Studio の新しいインスタンスを開き、プロジェクトの 2 番目のインスタンスを開きます。

  5. プロジェクト コードにブレークポイントを設定します。

  6. Visual Studio の新しいインスタンスのメニュー バーで、[デバッグ]>[プロセスにアタッチ] の順に選択します。

  7. [プロセスにアタッチ] ダイアログの [選択可能なプロセス] 一覧で、使用している Visual Studio のバージョンと、開発しているプラットフォーム (次の表を参照) に一致するプロセスを選択し、[アタッチ] ボタンを選択します。

    Visual Studio のバージョン プラットフォーム プロセス名
    2017 – 2022 UWP アプリ UwpSurface.exe
    2017 – 2022 WPF Core アプリ WpfSurface.exe
    2019 のみ WPF フレームワーク xDesProc.exe
    2022 のみ WPF フレームワーク WpfSurface.exe

    重要

    Visual Studio 2019 で、[ツール]>[オプション]>[環境]>[プレビュー機能][New WPF XAML Designer]\(新しい WPF XAML デザイナー\) が有効な場合は WpfSurface.exe です。

  8. Visual Studio の最初のインスタンスのメニュー バーで、[デバッグ][デバッグ開始] の順に選択します。

    デザイナーで実行しているコードにステップ インできます。

デザイナーでプロジェクト コードを無効にするには

  • ハンドルされない例外のダイアログで、 [ここをクリックしてプロジェクト コードの実行を無効にし、デザイナーを再読み込み] リンクを選びます。

  • あるいは、XAML デザイナーのツール バーで、[プロジェクト コードを無効にする] ボタンを選びます。

    The Disable Project Code button

    もう一度ボタンを切り替えて、プロジェクト コードを再び有効にできます。

    Note

    ARM または X64 プロセッサがターゲットのプロジェクトの場合、Visual Studio は、デザイナーでプロジェクト コードを実行できないため、デザイナーで [プロジェクト コードを無効にする] ボタンは無効です。

  • どちらかのオプションを実行するとデザイナーは再度読み込み、関連付けられているプロジェクトのすべてのコードを無効にします。

    Note

    プロジェクト コードを無効にすると、デザイン時データが失われることがあります。 別の方法は、デザイナーで実行されているコードをデバッグすることです。

コントロールの表示オプション

Note

コントロールの表示オプションは、Windows 10 Fall Creators Update (ビルド 16299) 以降を対象とするユニバーサル Windows プラットフォーム アプリケーションでのみ使用できます。 コントロールの表示オプション機能は、Visual Studio 2017 バージョン 15.9 以降で使用できます。

XAML デザイナーでは、Windows SDK からのプラットフォーム コントロールのみを表示するようにコントロールの表示オプションを変更できます。 これにより、XAML デザイナーの信頼性が向上する可能性があります。

コントロールの表示オプションを変更するには、デザイナー ウィンドウの左下のアイコンをクリックし、[コントロールの表示オプション] の下でオプションを選択します。

Control Display Options

[プラットフォーム コントロールのみを表示] を選択すると、SDK からのすべてのカスタム コントロールや顧客ユーザー コントロールなどが完全にレンダリングされなくなります。 代わりに、これらはコントロールの位置とサイズを示すフォールバック コントロールで置き換えられます。