public static MessageBoxResult Show(
            Action <Window> setOwner,
            string messageBoxText,
            string caption,
            MessageBoxButtonOptions button,
            MessageBoxImage icon,
            MessageBoxResult defaultResult,
            MessageBoxOptions options)
        {
            if ((options & MessageBoxOptions.DefaultDesktopOnly) == MessageBoxOptions.DefaultDesktopOnly)
            {
                throw new NotImplementedException();
            }

            if ((options & MessageBoxOptions.ServiceNotification) == MessageBoxOptions.ServiceNotification)
            {
                throw new NotImplementedException();
            }

            _messageBoxWindow = new WpfMessageBoxWindow();

            setOwner(_messageBoxWindow);

            PlayMessageBeep(icon);

            _messageBoxWindow._viewModel  = new MessageBoxViewModel(_messageBoxWindow, caption, messageBoxText, button, icon, defaultResult, options);
            _messageBoxWindow.DataContext = _messageBoxWindow._viewModel;
            _messageBoxWindow.ShowDialog();
            return(_messageBoxWindow._viewModel.Result);
        }
 private static MessageBoxResult ShowCore(
     Window owner,
     string messageBoxText,
     string caption = EmptyString,
     MessageBoxButtonOptions button = MessageBoxButtonOptions.Ok,
     MessageBoxImage icon           = MessageBoxImage.None,
     MessageBoxResult defaultResult = MessageBoxResult.None,
     MessageBoxOptions options      = MessageBoxOptions.None)
 {
     return(WpfMessageBoxWindow.Show(messageBoxWindow => ShowInternal(messageBoxWindow, owner), messageBoxText, caption, button, icon, defaultResult, options));
 }
        public MessageBoxViewModel(
            WpfMessageBoxWindow view,
            string title,
            string message,
            MessageBoxButtonOptions buttonOption,
            MessageBoxImage image,
            MessageBoxResult defaultResult,
            MessageBoxOptions options)
        {
            Title        = title;
            Message      = message;
            ButtonOption = buttonOption;
            Options      = options;

            SetDirections(options);
            SetButtonVisibility(buttonOption);
            SetImageSource(image);
            SetButtonDefault(defaultResult);
            _view = view;
        }