/// <summary> /// Shows a message and returns the users response. /// </summary> /// <param name="messageBoxSettings">The message to show including text, title and /// message type, buttons and whether to enable copying the message to a clipboard</param> /// <returns>The users response to the message.</returns> public static MessageBoxResult ShowMessage(MessageBoxSettings messageBoxSettings) { var model = new MessageBoxViewModel(messageBoxSettings); var view = new MessageBoxView(); view.DataContext = model; view.ShowDialog(); messageBoxSettings.MessageBoxResult = model.MessageBoxResult; return(messageBoxSettings.MessageBoxResult); }
/// <summary> /// Shows a message and returns the users response. /// </summary> /// <param name="text">The message text.</param> /// <param name="title">The message title.</param> /// <param name="messageType">The message type.</param> /// <param name="buttons">The buttons to display.</param> /// <param name="copyToClipboardEnabled">Enable copying message to the clipboard. Defaults is false.</param> /// <returns>The users response to the message.</returns> public static MessageBoxResult ShowMessage(string text, string title, MessageType messageType, MessageBoxButtons buttons, bool copyToClipboardEnabled = false) { var message = new MessageBoxSettings() { Text = text, Title = title, MessageType = messageType, MessageBoxButtons = buttons, CopyToClipboardEnabled = copyToClipboardEnabled }; return(ShowMessage(message)); }
/// <summary> /// Initializes a new instance of the <see cref="MessageBoxViewModel"/>. /// </summary> /// <param name="messageBoxSettings">The settings of the messsage to display.</param> public MessageBoxViewModel(MessageBoxSettings messageBoxSettings) { this.messageBoxSettings = messageBoxSettings; TextAlignment = messageBoxSettings.MessageBoxText.TextAlignment; CopyToClipboardEnabled = messageBoxSettings.CopyToClipboardEnabled; switch (messageBoxSettings.MessageBoxButtons) { case MessageBoxButtons.Ok: ButtonLeftVisible = false; ButtonLeftText = String.Empty; ButtonCentreVisible = true; ButtonCentreText = OK; ButtonRightVisible = false; ButtonRightText = String.Empty; break; case MessageBoxButtons.OkCancel: ButtonLeftVisible = true; ButtonLeftText = OK; ButtonCentreVisible = false; ButtonCentreText = String.Empty; ButtonRightVisible = true; ButtonRightText = CANCEL; break; case MessageBoxButtons.YesNo: ButtonLeftVisible = true; ButtonLeftText = YES; ButtonCentreVisible = false; ButtonCentreText = String.Empty; ButtonRightVisible = true; ButtonRightText = NO; break; case MessageBoxButtons.YesNoCancel: ButtonLeftVisible = true; ButtonLeftText = YES; ButtonCentreVisible = true; ButtonCentreText = NO; ButtonRightVisible = true; ButtonRightText = CANCEL; break; } }
private void MessageMouseDoubleClick(object sender, MouseButtonEventArgs e) { e.Handled = true; var contentControl = sender as ContentControl; if (contentControl == null) { return; } var message = contentControl.DataContext as Message; if (message == null) { return; } var messagePanel = contentControl.Tag as MessagePanel; if (messagePanel == null) { return; } var messageBoxSettings = new MessageBoxSettings { Text = string.IsNullOrWhiteSpace(message.TextVerbose) ? message.Text : message.TextVerbose, Title = message.Title, MessageType = message.MessageType, MessageBoxButtons = MessageBoxButtons.Ok, CopyToClipboardEnabled = true, MessageBoxText = new MessageBoxText { TextAlignment = messagePanel.ShowMessageTextAlignment } }; Dialog.ShowMessage(messageBoxSettings); }