Example #1
0
 private MessageBox(MessageBoxWindow window)
 {
     Window = window;
     window.RecieveResult += MessageBox_RecieveResult;
 }
Example #2
0
 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)));
 }
Example #3
0
        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);
        }