public static MessageDialogResult ShowModalMessageConfirmExternal(this MetroWindow window, string title, string message, MessageDialogStyle style = MessageDialogStyle.Affirmative, MetroDialogSettings settings = null, int?showWidth = null, int?showHeight = null)
        {
            var win = CreateModalExternalWindow(window, showWidth, showHeight);

            settings = settings ?? window.MetroDialogOptions;

            //create the dialog control
            var dialog = new MessageDialogConfirm(window, settings)
            {
                Message      = message,
                Title        = title,
                ButtonStyle  = style,
                DialogBottom = null,
            };

            dialog.PART_AffirmativeButton.Width = dialog.PART_NegativeButton.Width = (showWidth < 1 ? (window.ActualWidth / 2 - 2) : (Convert.ToInt32(showWidth) / 2 - 2));

            SetDialogFontSizes(settings, dialog);

            win.Content = dialog;

            MessageDialogResult result = MessageDialogResult.Affirmative;

            dialog.WaitForButtonPressAsync().ContinueWith(task =>
            {
                result = task.Result;
                win.Invoke(win.Close);
            });

            HandleOverlayOnShow(settings, window);
            win.ShowDialog();
            HandleOverlayOnHide(settings, window);
            return(result);
        }