private MessageBox(MessageBoxWindow window) { Window = window; window.RecieveResult += MessageBox_RecieveResult; }
public static MessageBox CreateQuestion(string message, string caption = null, MessageBoxButton button = MessageBoxButton.OK, MessageBoxImage icon = MessageBoxImage.Question, Exception exception = null) { return(new MessageBox(MessageBoxWindow.CreateWindow(message, caption ?? LangResources.MessageBoxWindow_TitleQuestion, button, icon, SystemSounds.Question, exception))); }
internal static MessageBoxWindow CreateWindow(string message, string caption, MessageBoxButton button, MessageBoxImage icon, SystemSound sound, Exception exception) { MessageBoxWindow window = null; Application.Current.Dispatcher.Invoke(() => { window = new MessageBoxWindow(); if (Application.Current.MainWindow.IsLoaded) { window.Owner = Application.Current.MainWindow; } window.Title = caption; window.MessageTextBlock.Text = message; window.Buttons = button; switch (button) { case MessageBoxButton.OK: window.OKButton.Visibility = Visibility.Visible; break; case MessageBoxButton.OKCancel: window.OKButton.Visibility = Visibility.Visible; window.CancelButton.Visibility = Visibility.Visible; break; case MessageBoxButton.YesNo: window.YesButton.Visibility = Visibility.Visible; window.NoButton.Visibility = Visibility.Visible; break; case MessageBoxButton.YesNoCancel: window.YesButton.Visibility = Visibility.Visible; window.NoButton.Visibility = Visibility.Visible; window.CancelButton.Visibility = Visibility.Visible; break; } var iconHandle = IntPtr.Zero; switch (icon) { case MessageBoxImage.Hand: iconHandle = SystemIcons.Hand.Handle; break; case MessageBoxImage.Question: iconHandle = SystemIcons.Question.Handle; break; case MessageBoxImage.Exclamation: iconHandle = SystemIcons.Exclamation.Handle; break; case MessageBoxImage.Asterisk: iconHandle = SystemIcons.Asterisk.Handle; break; } if (iconHandle != IntPtr.Zero) { window.IconImage.Source = Imaging.CreateBitmapSourceFromHIcon(iconHandle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); window.IconImage.Visibility = Visibility.Visible; } if (exception != null) { window.ShowExceptionExpander(exception); } window.Sound = sound; }); return(window); }