public static MessageBoxResult Show(Window owner, string messageBoxText, string caption, IList <MessageBoxButtonInfo> ctrlButtons) { var mbox = new MessageBoxModule(); mbox.Message = messageBoxText; mbox.Title = caption; mbox.Owner = owner; IsUseCustomInfoDefine(ref mbox); if (owner != null) { mbox.WindowStartupLocation = WindowStartupLocation.CenterOwner; } if (null != ctrlButtons && ctrlButtons.Count > 0) { foreach (var btnInfo in ctrlButtons) { switch (btnInfo.Result) { case MessageBoxResult.Cancel: case MessageBoxResult.No: { var btn = CreateCtrlButtonWithResult(mbox, btnInfo.ContentText, false, btnInfo.Action, btnInfo.IsDefault); mbox.CtrlButtonCollection.Add(btn); } break; case MessageBoxResult.None: { var btn = CreateCtrlButtonWithResult(mbox, btnInfo.ContentText, null, btnInfo.Action, btnInfo.IsDefault); mbox.CtrlButtonCollection.Add(btn); } break; case MessageBoxResult.OK: case MessageBoxResult.Yes: default: { var btn = CreateCtrlButtonWithResult(mbox, btnInfo.ContentText, true, btnInfo.Action, btnInfo.IsDefault); mbox.CtrlButtonCollection.Add(btn); } break; } } var result = mbox.ShowDialog(); return(MessageBoxResult.None); } else { return(Show(owner, messageBoxText, caption, MessageBoxButton.OK)); } }
/// <summary> /// /// </summary> /// <param name="owner"></param> /// <param name="messageBoxText"></param> /// <param name="caption"></param> /// <param name="button"></param> /// <param name="icon">为兼容 System.Windows.MessageBox 的留白.</param> /// <param name="defaultResult"></param> /// <returns></returns> public static MessageBoxResult Show(Window owner, string messageBoxText, string caption, MessageBoxButton button, MessageBoxImage icon, MessageBoxResult defaultResult) { var mbox = new MessageBoxModule(); mbox.Message = messageBoxText; mbox.Title = caption; mbox.Owner = owner; IsUseCustomInfoDefine(ref mbox); if (owner != null) { mbox.WindowStartupLocation = WindowStartupLocation.CenterOwner; } switch (button) { case MessageBoxButton.OKCancel: mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "确定", true, null, defaultResult == MessageBoxResult.OK)); mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "取消", false, null, defaultResult == MessageBoxResult.Cancel)); break; //break; case MessageBoxButton.YesNo: mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "是", true, null, defaultResult == MessageBoxResult.Yes)); mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "否", false, null, defaultResult == MessageBoxResult.No)); break; case MessageBoxButton.YesNoCancel: mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "是", true, null, defaultResult == MessageBoxResult.Yes)); mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "否", false, null, defaultResult == MessageBoxResult.No)); mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "取消", null, null, defaultResult == MessageBoxResult.Cancel)); break; case MessageBoxButton.OK: default: mbox.CtrlButtonCollection.Add(CreateCtrlButtonWithResult(mbox, "确定", true, null, defaultResult == MessageBoxResult.OK)); break; } var result = mbox.ShowDialog(); switch (button) { //break; case MessageBoxButton.OKCancel: { return(result == true ? MessageBoxResult.OK : result == false ? MessageBoxResult.Cancel : MessageBoxResult.None); } //break; case MessageBoxButton.YesNo: { return(result == true ? MessageBoxResult.Yes : MessageBoxResult.No); } //break; case MessageBoxButton.YesNoCancel: { return(result == true ? MessageBoxResult.Yes : result == false ? MessageBoxResult.No : MessageBoxResult.Cancel); } case MessageBoxButton.OK: default: { return(result == true ? MessageBoxResult.OK : MessageBoxResult.None); } } }