WPF MessageBoxサンプル作成ツール

Windows 標準の MessageBox をリアルタイムにシミュレート。 GitHub でビルド済み exe を公開中。開発環境なしで UI の仕様検討を即座に開始。

概要:対話的な MessageBox シミュレーター

WPF MessageBox サンプル作成ツールは、WPF の標準 MessageBox を直感的にカスタマイズし、その場で実際の挙動を確認できるプロトタイピングアプリです。 本文、タイトル、ボタン、アイコン、既定の結果、表示オプションを設定し、その設定のまま実際の MessageBox を表示できます。

本ツールは GitHub の Release ページにてビルド済みの実行ファイル(.exe)を公開しているため、Visual Studio などの開発環境がインストールされていない PC でもダウンロードするだけで利用できます。 ただし配布しているビルドはフレームワーク依存のため、対応する x64 版の .NET デスクトップ ランタイムは導入済みである必要があります。 詳細は後述の動作環境を参照してください。

WPF MessageBoxサンプル作成ツールのメイン画面。本文、タイトル、ボタン、アイコン、オプションの入力欄が並ぶ

開発背景:「環境構築の壁」を取り払うために

WPF 開発において、エラーメッセージや確認ダイアログの挙動を確認するためだけにコードを書き、リビルドを繰り返すのは非効率な作業です。

特に、開発者以外のデザイナーや設計者が「実際の挙動を確認したい」と思っても、ソースコードしか公開されていないツールでは、ビルド環境の構築という高いハードルがありました。 そこで本ツールでは、誰もがすぐに動かせるよう実行形式での配布を行っています。 あえてサードパーティ製ライブラリを一切使わず、WPF 標準コントロールの Style 定義のみで構築したため、軽量で依存関係の少ないツールを実現できました。

設定できる項目

本ツールが呼び出す MessageBox.Show のオーバーロードの引数を、それぞれ独立した入力として公開しています。 そのため、コードを書き換えてリビルドすることなく組み合わせを試せます。 なお、第 1 引数に所有者となる Window を受け取るオーバーロードは対象外で、本ツールは所有者を設定しません。

項目 効果
本文 string ダイアログの本文です。長文がどこで折り返され、ダイアログの幅がどう変わるかの確認に使えます。
タイトル string タイトルバーに表示される文字列です。
ボタン MessageBoxButton ボタンの組み合わせです。OK / OK・キャンセル / はい・いいえ / はい・いいえ・キャンセル から選べます。
アイコン MessageBoxImage 本文の横に表示されるシステムアイコンです。列挙型の 9 つの値すべてを選択できます。
既定の結果 MessageBoxResult ダイアログを開いた時点でフォーカスが当たるボタン、すなわち Enter キーで確定されるボタンです。 本ツールでは列挙型のすべての値を選べますが、指定が効くのは、選んだボタン構成にそのボタンが含まれている場合だけです。 表示されていないボタンを指定すると、代わりに先頭のボタンが既定になります。一度試してみると挙動がつかめます。
オプション MessageBoxOptions 右寄せ表示や右から左への読み取り順序といった、表示に関するオプションです。

このツールで分かること:アイコン名は 9 つ、実際のアイコンは 4 種類

MessageBoxImage には 9 つのメンバーがあるため、9 種類のアイコンを選べるように見えます。 しかし実際にはそうではありません。 いくつかのメンバーは同じ数値を共有しており、実行時には区別できません。 列挙型が同一の Win32 フラグに対して別名を用意している、というのが実態です。

列挙型のメンバー 実際に表示されるアイコン
None 0 アイコンなし
Error / Hand / Stop 16 赤い円の中の白い ×
Question 32 円の中の疑問符
Exclamation / Warning 48 黄色い三角形の中の感嘆符
Asterisk / Information 64 円の中の小文字の i

ErrorHandStop を順に選び、毎回まったく同じダイアログが表示されるのを見れば、 列挙型の定義を読んでいるときに湧く疑問がその場で解消します。 同時に、この 3 つのどれを使うかはコードの読みやすさの問題であって、ユーザーに見える違いではないことも分かります。

もう 1 点、使う前に知っておく価値のある注意があります。 Microsoft は Question アイコンを非推奨としています。 疑問符はメッセージの種類を示しておらず、ヘルプ機能と誤解されうる、というのがその理由です。 現在も列挙型に残っているのは後方互換性のためです。 確認ダイアログには Warning を使うか、アイコンを付けないほうが無難です。

技術的な工夫:柔軟性と可搬性

1. ビルド不要ですぐ動かせる

開発者以外とツールを共有するには、ソースコードを提供するだけでは足りません。 実行ファイルを公開し続けることで、チームの誰もが最新の UI 仕様を自分のマシンで即座に確認できる状態を作りました。

2. 各プロパティを独立して設定できる

各コントロールは独立して設定できるように構成しています。 特定のボタンとアイコンの組み合わせや、本文の長さに応じた自動リサイズといった条件を、コード上のロジックを気にせず試せます。

3. XAML による見通しのよい UI 管理

レイアウトは XAML のみで定義し、デザインとロジックを分離しています。 標準コントロールを Style の定義だけでどこまで整えられるかという、実装サンプルとしても参照できます。

主な用途

動作環境

ダウンロードとリポジトリ

実行ファイルのダウンロードとソースコードの閲覧は GitHub から行えます。

🚀 ビルド済み exe をダウンロード(GitHub Releases)

GitHub リポジトリを見る(ソースコード)