'Adding a CheckBox to WPF MessageBox

The Message Boxes of WPF could be customized as i understand. I was wondering is it possible to add a CheckBox to the WPF MessageBox with say - Don't show this message again etc.?



Solution 1:[1]

Possible, you can change the WPF control styles and templates as per your requirement, see these links for further references:

Custom Message Box

http://blogsprajeesh.blogspot.com/2009/12/wpf-messagebox-custom-control.html

http://www.codeproject.com/Articles/201894/A-Customizable-WPF-MessageBox

http://www.codeproject.com/Articles/22511/WPF-Common-TaskDialog-for-Vista-and-XP

Solution 2:[2]

Could just use a Window Passed checked in the ctor so you can get the value back

bool checked = false;    
Window1 win1 = new Window1(ref input);
Nullable<bool> dialogResult = win1.ShowDialog();
System.Diagnostics.Debug.WriteLine(dialogResult.ToString());
System.Diagnostics.Debug.WriteLine(checked.ToString());

Solution 3:[3]

I realize this is a very old thread, but I was searching this matter today and was surprised to see no replies mentioning Ookii: https://github.com/ookii-dialogs/ookii-dialogs-wpf

I was already using it for Folder Browsing. Now I wanted to add a "Don't Show Again" checkbox whenever the main window is closed, and it's really simple to use it.

Here's my code:

using Ookii.Dialogs.Wpf;

//create instance of ookii dialog
TaskDialog dialog = new();

//create instance of buttons
TaskDialogButton butYes = new TaskDialogButton("Yes");
TaskDialogButton butNo = new TaskDialogButton("No");
TaskDialogButton butCancel = new TaskDialogButton("Cancel");

//checkbox 
dialog.VerificationText = "Dont Show Again"; //<--- this is what you want.

//customize the window
dialog.WindowTitle = "Confirm Action";
dialog.Content = "You sure you want to close?";
dialog.MainIcon = TaskDialogIcon.Warning;

//add buttons to the window
dialog.Buttons.Add(butYes);
dialog.Buttons.Add(butNo);
dialog.Buttons.Add(butCancel);

//show window
TaskDialogButton result = dialog.ShowDialog(this);

//get checkbox result
if (dialog.IsVerificationChecked)
{
    //do stuff
}

//get window result
if (result != butYes)
{
    //if user didn't click "Yes", then cancel the closing.
    e.Cancel = true;
    return;
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Community
Solution 2
Solution 3