XamDialogWindow コントロールをメッセージボックスとして表示するサンプルです。WPF標準コントロールの MessageBox は弊社のテーマの対象外ですが、XamDialogWindow は勿論、弊社のテーマの対象ですので見た目の統一感を損なわずご利用頂けます。
コードスニペット(利用方法)
// 下記の引数を設定し、メッセージボックスを表示します。 // 第①引数にWPF用準のWindow コントロール // 第②引数にメッセージ // 第③引数にタイトル DialogHelper.ShowMessage(this, "サンプルメッセージ", "タイトル");
サンプルに含まれている DialogHelper は、XamDialogWindow でメッセージボックスのようなレイアウトをコードビハインドで作成しています。ご要望に応じてレイアウトをカスタマイズしてください。
public static void ShowMessage(Window win, string message, string title)
{
Panel rootLayout = Utilities.GetDescendantFromType(win, typeof(Panel), true) as Panel;
if(rootLayout == null)
{
throw new Exception("Window コントロールの直下にパネルコントロール (Grid, StackPanel等) を配置してください。");
}
XamDialogWindow dialog = new XamDialogWindow();
dialog.Height = 300;
dialog.Width = 300;
dialog.IsModal = true;
dialog.StartupPosition = StartupPosition.Center;
dialog.CloseButtonVisibility = Visibility.Collapsed;
dialog.MaximizeButtonVisibility = Visibility.Collapsed;
dialog.MinimizeButtonVisibility = Visibility.Collapsed;
// タイトルを設定
dialog.Header = title;
Grid layout = new Grid();
layout.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
layout.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
// メッセージ設定
TextBlock messageTextBlock = new TextBlock() { Text = message };
Grid.SetRow(messageTextBlock, 0);
// ボタン設定
Button button = new Button() { Content = "OK" };
button.Click += (ss, ee) => {
dialog.Close();
rootLayout.Children.Remove(dialog);
};
Grid.SetRow(button, 1);
layout.Children.Add(messageTextBlock);
layout.Children.Add(button);
dialog.Content = layout;
rootLayout.Children.Add(dialog);
dialog.Show();
}

サンプル