/// <summary> /// Occurs when the <see cref="RoutedCommand"/> is executed. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">An <see cref="ExecutedRoutedEventArgs"/> that contains the event data.</param> private void OnFontSizeExecute(object sender, ExecutedRoutedEventArgs e) { DoubleValueCommandParameter parameter = e.Parameter as DoubleValueCommandParameter; if (parameter != null) { if (parameter.ConversionException != null) { MessageBox.Show(parameter.ConversionException.Message, "Invalid Font Size", MessageBoxButton.OK, MessageBoxImage.Exclamation); } else { switch (parameter.Action) { case ValueCommandParameterAction.CancelPreview: this.DeactivatePreviewMode(true); break; case ValueCommandParameterAction.Commit: this.DeactivatePreviewMode(false); this.SelectionFontSize = parameter.Value; break; case ValueCommandParameterAction.Preview: this.ActivatePreviewMode(); this.SelectionFontSize = parameter.PreviewValue; break; } } e.Handled = true; } }
/// <summary> /// Occurs when the <see cref="RoutedCommand"/> needs to determine whether it can execute. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">A <see cref="CanExecuteRoutedEventArgs"/> that contains the event data.</param> private void OnFontSizeCanExecute(object sender, CanExecuteRoutedEventArgs e) { DoubleValueCommandParameter parameter = e.Parameter as DoubleValueCommandParameter; if ((parameter != null) && (!this.IsPreviewModeActive)) { parameter.UpdatedValue = this.SelectionFontSize; parameter.Handled = true; } e.CanExecute = true; }