Dialog CreateWindow(Window parent) { var dialog = new Dialog { DataContext = this }; if (parent == null) { dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen; } else { dialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; } return dialog; }
void ShowDialog(Window parent, MessageIcon icon, string title, string content, MessageChoice choices, string help, bool enableDontAsk, MessageChoice defaultChoice) { if (IsSet(choices, MessageChoice.Yes | MessageChoice.OK) || (choices == MessageChoice.Help)) { throw new ArgumentException(); } view = CreateWindow(parent); Icon = icon; Title = title; Content = content; Choices = new List<ICommand>(); EnableDontAskAgain = enableDontAsk; Result = MessageChoice.None; if (!string.IsNullOrEmpty(help)) { HelpMessage = help; } if (IsSet(choices, MessageChoice.Yes)) { Choices.Add(new ChoiceCommand(CloseCommand, defaultChoice == MessageChoice.Yes, false, "Yes", MessageChoice.Yes)); } if (IsSet(choices, MessageChoice.No)) { Choices.Add(new ChoiceCommand(CloseCommand, defaultChoice == MessageChoice.No, !IsSet(choices, MessageChoice.Cancel), "No", MessageChoice.No)); } if (IsSet(choices, MessageChoice.OK)) { Choices.Add(new ChoiceCommand(CloseCommand, choices == MessageChoice.OK || defaultChoice == MessageChoice.OK, !IsSet(choices, MessageChoice.Cancel), "OK", MessageChoice.OK)); } if (IsSet(choices, MessageChoice.Cancel)) { Choices.Add(new ChoiceCommand(CloseCommand, choices == MessageChoice.Cancel || defaultChoice == MessageChoice.Cancel, true, "Cancel", MessageChoice.Cancel)); } if (IsSet(choices, MessageChoice.Help)) { Choices.Add(new ChoiceCommand(HelpCommand, choices == MessageChoice.Help || defaultChoice == MessageChoice.Help, false, "Help", MessageChoice.Help)); } view.ShowDialog(); }