コード例 #1
0
        /// <summary>
        ///     Extended MetroMessageBox.
        /// </summary>
        /// <param name="this"></param>
        /// <param name="message"></param>
        /// <param name="title"></param>
        /// <param name="buttons"></param>
        /// <param name="messageBoxType"></param>
        /// <returns></returns>
        public static MessageBoxResult ShowMetroMessageBox(this IWindowManager @this, string message, string title,
                                                           MessageBoxButton buttons, BoxType messageBoxType = BoxType.Default)
        {
            MessageBoxResult retval;
            var shellViewModel = IoC.Get <MainViewModel>();

            try
            {
                if (shellViewModel != null)
                {
                    shellViewModel.ShowOverlay();
                }
                var model = new MetroMessageBoxViewModel(message, title, buttons, messageBoxType);
                Execute.OnUIThread(() => @this.ShowDialog(model));
                retval = model.Result;
            }
            finally
            {
                if (shellViewModel != null)
                {
                    shellViewModel.HideOverlay();
                }
            }

            return(retval);
        }
コード例 #2
0
        /// <summary>
        ///     Extended MetroMessageBox.
        /// </summary>
        /// <param name="this"></param>
        /// <param name="message"></param>
        /// <param name="title"></param>
        /// <param name="buttons"></param>
        /// <param name="messageBoxType"></param>
        /// <returns></returns>
        public static async Task <MessageBoxResult> ShowMetroMessageBox(this IWindowManager @this, string message, string title,
                                                                        MessageBoxButton buttons, BoxType messageBoxType = BoxType.Default)
        {
            var model = new MetroMessageBoxViewModel(message, title, buttons, messageBoxType);
            await Execute.OnUIThreadAsync(async() => await @this.ShowDialogAsync(model));

            return(model.Result);
        }
コード例 #3
0
        private void btnCancel_Click(object sender, RoutedEventArgs e)
        {
            MetroMessageBoxViewModel vm = this.DataContext as MetroMessageBoxViewModel;

            if (vm != null)
            {
                vm.Cancel();
            }
        }
コード例 #4
0
        private static Task <MessageBoxResult> ShowAsync(this MetroWindow window, string message, string details = null,
                                                         string title          = "", MessageBoxButton buttons = MessageBoxButton.OK,
                                                         MessageBoxImage image = MessageBoxImage.None)
        {
            var viewModel = new MetroMessageBoxViewModel(message, details, title, buttons,
                                                         MessageBoxImageToImageSource(image));

            return(ShowDialogAsync(window, viewModel, new MetroMessageBoxView(),
                                   () => MessageBoxImageToSystemSound(image).Play()));
        }
コード例 #5
0
        private static MessageBoxResult ConstrucBox(Window owner, string message, string title, MessageBoxButton buttons, MessageBoxImage image,
                                                    MessageBoxResult defaultResult, bool playSystemSound)
        {
            MetroMessageBoxView      mmbView      = new MetroMessageBoxView();
            MetroMessageBoxViewModel mmbViewModel = new MetroMessageBoxViewModel(mmbView, message, title, buttons, MessageBoxImageToImageSource(image));

            mmbView.Owner       = owner;
            mmbView.DataContext = mmbViewModel;
            mmbViewModel.Result = defaultResult;

            MessageBoxImageToSystemSound(image).Play();

            mmbView.ShowDialog();
            return(mmbViewModel.Result);
        }
コード例 #6
0
        public static MessageBoxResult ShowMetroMessageBox(this IWindowManager @this, string message, string title, MessageBoxButton buttons)
        {
            MessageBoxResult retval;
            var shellViewModel = Caliburn.Micro.IoC.Get <MainWindowViewModel>();

            try
            {
                shellViewModel.ShowOverlay();
                var model = new MetroMessageBoxViewModel(message, title, buttons);
                @this.ShowDialog(model);

                retval = model.Result;
            }
            finally
            {
                shellViewModel.HideOverlay();
            }

            return(retval);
        }
コード例 #7
0
        public static MessageBoxResult ShowMetroMessageBox(this IWindowManager @this, string message, string title, MessageBoxButton buttons)
        {
            MessageBoxResult retval;
            var shellViewModel = IoC.Get<IShell>();

            try
            {
                shellViewModel.ShowOverlay();
                var model = new MetroMessageBoxViewModel(message, title, buttons);
                @this.ShowDialog(model);

                retval = model.Result;
            }
            finally
            {
                shellViewModel.HideOverlay();
            }

            return retval;
        }
コード例 #8
0
        public static MessageBoxResult ShowMetroMessageBox(this IWindowManager window_manager, string message, string title, MessageBoxButton buttons)
        {
            MessageBoxResult result = MessageBoxResult.None;
            var shell_view_model    = IoC.Get <IShell>();

            try
            {
                shell_view_model.ShowOverlay();

                var messagebox_view_model = new MetroMessageBoxViewModel(message, title, buttons);
                window_manager.ShowDialog(messagebox_view_model);

                result = messagebox_view_model.Result;
            }
            finally
            {
                shell_view_model.HideOverlay();
            }

            return(result);
        }
コード例 #9
0
        static MetroMessageBoxViewModel GetMetroMessageBoxViewModel(MessageBoxDialogParams dialogParams)
        {
            MetroMessageBoxViewModel ev;

            if (dialogParams.IgnoreContent)
            {
                ev = new MetroMessageBoxViewModel(dialogParams.Message, dialogParams.Title,
                                                  GetButton(dialogParams.Buttons), dialogParams.RememberedState);
            }
            else
            {
                ev = new MetroMessageBoxViewModel(dialogParams.Message, dialogParams.Title,
                                                  GetButton(dialogParams.Buttons), dialogParams.RememberedState)
                {
                    GreenButtonContent = dialogParams.GreenContent,
                    BlueButtonContent  = dialogParams.BlueContent,
                    RedButtonContent   = dialogParams.RedContent
                };
            }
            return(ev);
        }