internal MessageBoxXWindow(string message, string caption, MessageBoxButton button, MessageBoxIcon icon, DefaultButton defaultButton, Window owner, MessageBoxXSettings settings)
        {
            _message = message;
            if (!string.IsNullOrEmpty(caption))
            {
                Title = caption;
            }

            _yesButtonContent    = settings.YesButton;
            _noButtonContent     = settings.NoButton;
            _okButtonContent     = settings.OKButton;
            _cancelButtonContent = settings.CancelButton;

            _messageBoxButton = button;
            CanClose          = button != MessageBoxButton.YesNo;

            _defaultButton = defaultButton;
            _isEscEnabled  = settings.IsEscEnabled;

            _icon = icon;
            _buttonArrangement = settings.ButtonArrangement;

            if (owner != null)
            {
                Owner = owner;
                WindowStartupLocation = WindowStartupLocation.CenterOwner;
            }
            else
            {
                WindowStartupLocation = WindowStartupLocation.CenterScreen;
            }
        }
        internal MessageBoxX(string message, string caption, MessageBoxButton button, MessageBoxIcon icon, DefaultButton defaultButton, MessageBoxButtonArrangement buttonArrangement, bool isEscEnabled, Window owner, object yesButton, object noButton, object cancelButton, object okButton)
        {
            Message = message;
            if (!string.IsNullOrEmpty(caption))
            {
                Title = caption;
            }

            _yesButtonContent    = yesButton;
            _noButtonContent     = noButton;
            _okButtonContent     = okButton;
            _cancelButtonContent = cancelButton;

            _messageBoxButton = button;
            _defaultButton    = defaultButton;
            _isEscEnabled     = isEscEnabled;

            MessageBoxIcon    = icon;
            ButtonArrangement = buttonArrangement;

            if (owner != null)
            {
                Owner = owner;
                WindowStartupLocation = WindowStartupLocation.CenterOwner;
            }
            else
            {
                WindowStartupLocation = WindowStartupLocation.CenterScreen;
            }
        }