Beispiel #1
0
        public void Show(string messageBoxText, string messageBoxTitle = ConstStrings.EMPTY,
                         EMessageBoxButton style = EMessageBoxButton.OK,
                         bool animate            = false,
                         MessageBoxResultCallback resultCallback = null,
                         string button1Text = null,
                         string button2Text = null,
                         string button3Text = null)
        {
            this.animate    = animate;
            this.Style      = style;
            promptText.text = messageBoxText;
            titleText.text  = messageBoxTitle;

            OnResult = resultCallback;

            switch (style)
            {
            case EMessageBoxButton.OK:
                Debug.Assert(string.IsNullOrEmpty(button2Text), "Too many button texts supplied.");
                Debug.Assert(string.IsNullOrEmpty(button3Text), "Too many button texts supplied.");
                SetupSingleButton(button1Text);
                break;

            case EMessageBoxButton.OKCancel:
                Debug.Assert(string.IsNullOrEmpty(button3Text), "Too many button texts supplied.");
                SetupDoubleButton(button1Text, button2Text);
                break;

            case EMessageBoxButton.YesNo:
                Debug.Assert(string.IsNullOrEmpty(button3Text), "Too many button texts supplied.");
                SetupDoubleButton(button1Text, button2Text);
                break;

            case EMessageBoxButton.YesNoCancel:
                SetupTripleButton(button1Text, button2Text, button3Text);
                break;

            default:
                throw new NotImplementedException($"{style} not implemented.");
            }

            Show();            //show visuals
            if (animate && transitionINAnimator != null)
            {
                ToggleButtonInteractivity(false);                 //disallow interaction until open.
                transitionINAnimator.Animate(windowTransform,
                                             onCompleteCallback: () => ToggleButtonInteractivity(true));
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="window"></param>
        /// <param name="text"></param>
        /// <param name="title"></param>
        /// <param name="messageBoxButton"></param>
        /// <param name="messageBoxImage"></param>
        /// <param name="messageBoxResult"></param>
        /// <returns></returns>
        public static EMessageBoxResult ShowMessageBox(Window window, string text, [NotNull] string title,
                                                       EMessageBoxButton messageBoxButton,
                                                       EMessageBoxImage messageBoxImage, EMessageBoxResult messageBoxResult)
        {
            Debug.Assert(!string.IsNullOrEmpty(text));
            Debug.Assert(!string.IsNullOrEmpty(title));

            MessageBoxButton button;

            switch (messageBoxButton)
            {
            case EMessageBoxButton.Ok:
                button = MessageBoxButton.OK;
                break;

            case EMessageBoxButton.YesNo:
                button = MessageBoxButton.YesNo;
                break;

            case EMessageBoxButton.YesNoCancel:
                button = MessageBoxButton.YesNoCancel;
                break;

            default:
                throw new ApplicationException("Illegal message box button");
            }

            MessageBoxImage image;

            switch (messageBoxImage)
            {
            case EMessageBoxImage.Error:
                image = MessageBoxImage.Error;
                break;

            case EMessageBoxImage.Warning:
                image = MessageBoxImage.Warning;
                break;

            case EMessageBoxImage.Exclamation:
                image = MessageBoxImage.Exclamation;
                break;

            case EMessageBoxImage.Information:
                image = MessageBoxImage.Information;
                break;

            default:
                throw new ApplicationException("Illegal message box image");
            }

            MessageBoxResult result;

            switch (messageBoxResult)
            {
            case EMessageBoxResult.Ok:
                result = MessageBoxResult.OK;
                break;

            case EMessageBoxResult.Yes:
                result = MessageBoxResult.Yes;
                break;

            case EMessageBoxResult.No:
                result = MessageBoxResult.No;
                break;

            case EMessageBoxResult.None:
                result = MessageBoxResult.None;
                break;

            case EMessageBoxResult.Cancel:
                result = MessageBoxResult.Cancel;
                break;

            default:
                throw new ApplicationException("Illegal message box result");
            }

            MessageBoxResult dialogResult = window == null?MessageBox.Show(text, title, button, image, result) :
                                                MessageBox.Show(window, text, title, button, image, result);

            EMessageBoxResult returnResult;

            switch (dialogResult)
            {
            case MessageBoxResult.OK:
                returnResult = EMessageBoxResult.Ok;
                break;

            case MessageBoxResult.Yes:
                returnResult = EMessageBoxResult.Yes;
                break;

            case MessageBoxResult.No:
                returnResult = EMessageBoxResult.No;
                break;

            case MessageBoxResult.Cancel:
                returnResult = EMessageBoxResult.Cancel;
                break;

            case MessageBoxResult.None:
                returnResult = EMessageBoxResult.None;
                break;

            default:
                throw new ApplicationException("Illegal message box result");
            }

            return(returnResult);
        }