The issue reproduces when track changes is enabled and new text is entered. After waiting some time and pressing the Backspace on the keyboard in order to delete a character, nothing happens. You should press the Backspace a second time in order to make the deletion work. After that you can delete the content normally.
The waiting time before pressing the Backspace is usually until the next minute of the clock comes. For example, you can write something at 14:55 and wait until 14:56. Then, press Backspace.
If you check the Output pane of Visual Studio you will see the following assertion failure message printed:
---- DEBUG ASSERTION FAILED ---- at Telerik.Windows.Documents.Model.RadDocumentEditor.DeleteTrackChanges(Boolean deletePrevious) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\Model\RadDocumentEditor_Editing.cs:line 693 at Telerik.Windows.Documents.Model.RadDocumentEditor.Delete(Boolean deletePrevious) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\Model\RadDocumentEditor_Editing.cs:line 85 at Telerik.Windows.Controls.RadRichTextBox.Telerik.Windows.Documents.Model.IDocumentEditor.Delete(Boolean deletePrevious) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\UI\RadRichTextBox.cs:line 4890 at Telerik.Windows.Controls.RadRichTextBox.Delete(Boolean deletePrevious) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\UI\RadRichTextBox.cs:line 4866 at Telerik.Windows.Documents.RichTextBoxCommands.DeleteCommand.ExecuteOverride(Object parameter) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\RichTextBoxCommands\DeleteCommand.cs:line 57 at Telerik.Windows.Documents.RichTextBoxCommands.RichTextBoxCommandBase.Execute(Object parameter, Boolean focusCaret) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\RichTextBoxCommands\RichTextBoxCommandBase.cs:line 316 at Telerik.Windows.Documents.RichTextBoxCommands.RichTextBoxCommandBase.Execute(Object parameter) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\RichTextBoxCommands\RichTextBoxCommandBase.cs:line 285 at Telerik.Windows.Documents.RichTextBoxCommands.RichTextBoxRoutedCommand.Execute(Object parameter, RadRichTextBox radRichTextBox) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\RichTextBoxCommands\RoutedCommands\RichTextBoxRoutedCommand.cs:line 57 at Telerik.Windows.Documents.RichTextBoxCommands.RichTextBoxRoutedCommand.CommandBindingHelper.CommandBinding_Executed(Object sender, ExecutedRoutedEventArgs e) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\RichTextBoxCommands\RoutedCommands\RichTextBoxRoutedCommand.cs:line 17 at System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e) at System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute) at System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e) at System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e) at System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) at System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated) at System.Windows.Input.RoutedCommand.Execute(Object parameter, IInputElement target) at System.Windows.Input.RoutedCommand.System.Windows.Input.ICommand.Execute(Object parameter) at Telerik.Windows.Documents.UI.Extensibility.DefaultInputHandler.HandleInput(RadRichTextBox richTextBox, PreviewEditorKeyEventArgs e) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\RichTextBoxCommands\RoutedCommands\DefaultInputHandler.cs:line 54 at Telerik.Windows.Controls.RadRichTextBox.HandlePresenterKeyDown(PreviewEditorKeyEventArgs e) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\UI\RadRichTextBox.cs:line 4612 at Telerik.Windows.Documents.UI.DocumentPresenterBase.HandleKeyDown(KeyEventArgs e) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\UI\DocumentPresenterBase.cs:line 859 at Telerik.Windows.Documents.UI.DocumentPresenterBase.OnPreviewKeyDown(KeyEventArgs e) in C:\PersonalFiles\Git\wpf\Controls\RichTextBox\Core\UI\DocumentPresenterBase.cs:line 805
When the exported document contains a very precise indent values, these are saved using scientific notation, which is unsupported in MS Word. Opening the file in Word results in the following error: "Word experienced an error trying to open the file."
Here is an example of the troublesome setting in the body of the produced document:
<w:ind w:firstLine="6.420405952667352E-06" w:left="76.53543090820312" w:right="0" />
To work this around, you can open the exported document with the WordsProcessing library. This will give you a RadFlowDocument object which then can be exported to a file again. This will save the indent values properly in the new document.
var dplProvider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider();
using (var inputStream = File.OpenRead("../../../originalFile.docx"))
{
Telerik.Windows.Documents.Flow.Model.RadFlowDocument flowDoc = dplProvider.Import(inputStream, TimeSpan.FromSeconds(5));
using (var outputStream = File.OpenWrite("../../../convertedFile.docx"))
{
dplProvider.Export(flowDoc, outputStream, TimeSpan.FromSeconds(5));
}
}
Or if you use the RichTextBox document model only to create documents in code (without using the RadRichTextBox control), you can replace the code with the WordsProcessing API.
Using the SpreadStreamExport feature of RadGridView doesn't work as expected when exporting DateTime objects. It exports the dates as String values which prevents the date-related features (like formatting) to work in Excel.
To work this around, you can create a custom SpreadStreamExportRenderer and override its SetCellValue method. This will allow you to manually provide the DateTime object instead of the string.
public class MyRenderer : SpreadStreamExportRenderer
{
public override void SetCellValue(DataType dataType, object value)
{
DateTime date;
if (value != null && DateTime.TryParse(value.ToString(), out date))
{
base.SetCellValue(DataType.DateTime, date);
var cell = this.GetCell() as ICellExporter;
cell.SetFormat(new SpreadCellFormat() { NumberFormat = "yyyy-MM-dd HH:mm:ss" });
return;
}
base.SetCellValue(dataType, value);
}
}
spreadStreamExport.RunExportAsync(FILENAME, new MyRenderer(), options);
The custom list styles from a document exported by RadRichTextBox's HtmlFormatProvider are not imported.
When trying to show the RadRichTextBox' LineNumberingDialog, nothing is displayed. This happens when using the NoXaml Telerik dlls and themes other than Windows11. The dialog is shown only in the Windows11 theme.
To work this around, add the following two lines in the App.xaml resources.
<Application x:Class="WpfApp1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
xmlns:telerikDialogs="clr-namespace:Telerik.Windows.Controls.RichTextBoxUI.Dialogs;assembly=Telerik.Windows.Controls.RichTextBox"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/System.Windows.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/Telerik.Windows.Controls.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/Telerik.Windows.Controls.ImageEditor.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/Telerik.Windows.Controls.Navigation.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/Telerik.Windows.Controls.Input.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/Telerik.Windows.Controls.RibbonView.xaml"/>
<ResourceDictionary Source="/Telerik.Windows.Themes.Fluent;component/Themes/Telerik.Windows.Controls.RichTextBox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="telerikDialogs:LineNumberingDialog" BasedOn="{StaticResource RadWindowStyle}"/>
<Style TargetType="telerikDialogs:LineNumberingDistanceNumericUpDown" BasedOn="{StaticResource RadNumericUpDownStyle}"/>
</ResourceDictionary>
</Application.Resources>
</Application>