/// <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;
        }