¿Hay un equivalente de MessageBox en WPF?

¿Hay un cuadro de mensaje estándar en WPF, como WinForms ‘ System.Windows.Forms.MessageBox.Show() , o debería usar el cuadro de mensaje de WinForms?

El equivalente de WPF sería System.Windows.MessageBox . Tiene una interfaz bastante similar, pero usa otras enumeraciones para los parámetros y el valor de retorno.

Puedes usar esto:

 MessageBoxResult result = MessageBox.Show("Do you want to close this window?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.Yes) { Application.Current.Shutdown(); } 

Para obtener más información, visite MessageBox en WPF .

El equivalente a MessageBox WinForms en WPF se llama System.Windows.MessageBox .

WPF contiene el siguiente MessageBox:

 if (MessageBox.Show("Do you want to Save?", "Confirm", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { } 

El MessageBox en el Extended WPF Toolkit es muy agradable. Está en Microsoft.Windows.Controls.MessageBox después de hacer referencia a la DLL de Toolkit. Por supuesto, esto fue lanzado el 9 de agosto de 2011, por lo que no habría sido una opción para ti originalmente. Se puede encontrar en Codeplex para cualquiera que esté mirando alrededor.

Como dicen los demás, hay un MessageBox en el espacio de nombres de WPF ( System.Windows ).

El problema es que es el mismo cuadro de mensaje antiguo con Aceptar , Cancelar , etc. Windows Vista y Windows 7 han pasado a utilizar Diálogos de tarea en su lugar.

Lamentablemente, no existe una interfaz estándar fácil para los cuadros de diálogo de tareas. Uso una implementación de CodeProject KB .

En WPF parece que este código,

 System.Windows.Forms.MessageBox.Show("Test"); 

es reemplazado por:

 System.Windows.MessageBox.Show("Test"); 

Quizás el código aquí abajo ayude:

 using Windows.UI.Popups; namespace something.MyViewModels { public class TestViewModel { public void aRandonMethode() { MyMessageBox("aRandomMessage"); } public async void MyMessageBox(string mytext) { var dialog = new MessageDialog(mytext); await dialog.ShowAsync(); } } } 

Si quieres tener tu propio y agradable wpf MessageBox: Crea nuevo Wpf Windows

aquí está xaml:

                                         

para cs de este archivo:

 public partial class MessageboxNew : Window { public MessageboxNew() { InitializeComponent(); } private void ButtonBase_OnClick(object sender, RoutedEventArgs e) { DialogResult = true; } private void cancel_Click(object sender, RoutedEventArgs e) { DialogResult = false; } private void FrameworkElement_OnLoaded(object sender, RoutedEventArgs e) { this.MouseDown += delegate { DragMove(); }; } } 

luego crea una clase para usar esto:

 public class Mk_MessageBox { public static bool? Show(string title, string text) { MessageboxNew msg = new MessageboxNew { TitleBar = {Text = title}, Textbar = {Text = text} }; msg.noBtn.Focus(); return msg.ShowDialog(); } } 

ahora puede crear su cuadro de mensaje así:

 var result = Mk_MessageBox.Show("Remove Alert", "This is gonna remove directory from host! Are you sure?"); if (result == true) { // whatever } 

copia esto a App.xaml dentro

                     

————– IMAGEN del resultado —————–

Mi referencia: https://www.red-gate.com/simple-talk/dotnet/net-development/using-c-to-create-powershell-cmdlets-the-basics/

para la lógica, ¿cómo puedo hacer mi propio mensaje?