Under Review
Last Updated: 31 Mar 2025 08:55 by ADMIN

Type in Japanese text in RichTextBox that word wraps beyond the first line and export it to PDF. The text should always be left aligned (as visually shown when typing) but has an "indent" when exported when the font is Segoe UI.

Image

In Development
Last Updated: 28 Mar 2025 14:18 by ADMIN
Scheduled for 2025 Q2 (May)

The operating system region and language needs to be set to Japanese.

RichTextBox seems to have several issues with Japanese, but being locked from visibility or edit is the biggest one.

To recreate, start typing in Japanese, push the "right" arrow after selecting the IME option desired, then hit "spacebar." This seems to duplicate the text, then when trying to continue to type into the text field the text is no longer visible (yet the IME does display).

The native WPF RichTextBox has no issues (and also supports partial selection, etc.).

I've attached a video to show the behavior with 2025 Q1 telerik.

*note:* This is on a machine with NVIDIA graphics. I mention this as there may be some issues with RichTextBox and the hardware... When I'm in a virtual machine with a completely Japanese environment and virtual graphics driver, there is NO text visible at all when trying to type into the RichTextBox. Works fine with other controls and wpf RichTextBox.

Unplanned
Last Updated: 10 Mar 2025 14:56 by Martin Ivanov

It seems that the first time a Center TextAlignment is applied to the selection, its length is cached. Because of this, when the selection content (text) changes the length is not updated, thus the text doesn't align properly. It aligns accord to the initial length of the context. The content doesn't update also if the alignment is reset.

 

To work this around, avoid the FlowNoWrap layout mode and use only Flow.

Unplanned
Last Updated: 03 Mar 2025 14:30 by Martin Ivanov
Many document elements (like Footer, Header, Note, Comments, etc.) have their own RadDocument instance that serves as their body. These child documents are part of the main RadDocument assigned as the Document of RadRichTextBox.

Currently, to access the child RadDocument elements, you should iterate each different element of the main RadDocument and collect its Body property value.

Add a method to easily collect the child RadDocuments, similar to how the EnumerateChildrenOfType<T> method works. Currently the EnumerateChildrenOfType<T> method doesn't work for searching RadDocument, so you can consider extending this already existing API.
Unplanned
Last Updated: 27 Feb 2025 14:30 by Martin Ivanov
Created by: Martin Ivanov
Comments: 0
Category: RichTextBox
Type: Feature Request
2
Add localization strings that can be used with the RadRichTextBoxRibbonUI control. Also, add the localization resources in the demos.
Unplanned
Last Updated: 27 Feb 2025 14:22 by Martin Ivanov

NullReferenceException is thrown when the document gets updated after TableRow objects were removed with the Remove method of the parent Rows collection of the Table.

The table.Rows.Remove method is not properly removing some of the rows.

Stacktrace:

Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Model.TableGridMeasurer.CalculateTableCellMinMaxWidths(Telerik.Windows.Documents.Model.TableCell cell, float availableWidth) Line 137 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Model.TableGridMeasurer.CalculateTableMinMaxWidths(Telerik.Windows.Documents.Model.Table table, float availableWidth) Line 165 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Model.TableGridMeasurer.MeasureAutoFit(Telerik.Windows.Documents.Model.Table table, float availableWidth) Line 229 C#
  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Model.Table.RecalculateColumnWidths(float measureWidth) Line 1151 C#
  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Model.Table.RecalculateTableGrid(float measureWidth) Line 1249 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.TableLayoutBox.MeasureOverride(Telerik.Windows.Documents.Model.SizeF availableSize) Line 265 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.LayoutElement.MeasureCore(Telerik.Windows.Documents.Model.SizeF availableSize) Line 933 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.LayoutElement.Measure(Telerik.Windows.Documents.Model.SizeF availableSize) Line 836 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.SectionLayoutBox.MeasureOverrideInternal(Telerik.Windows.Documents.Model.SizeF availableSize) Line 721 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.SectionLayoutBox.MeasureOverride(Telerik.Windows.Documents.Model.SizeF availableSize) Line 468 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.LayoutElement.MeasureCore(Telerik.Windows.Documents.Model.SizeF availableSize) Line 933 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.LayoutElement.Measure(Telerik.Windows.Documents.Model.SizeF availableSize) Line 836 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.DocumentLayoutBox.MeasureOverrideInternal(Telerik.Windows.Documents.Model.SizeF availableSize) Line 223 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.DocumentLayoutBox.MeasureOverride(Telerik.Windows.Documents.Model.SizeF availableSize) Line 150 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.LayoutElement.MeasureCore(Telerik.Windows.Documents.Model.SizeF availableSize) Line 933 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Layout.LayoutElement.Measure(Telerik.Windows.Documents.Model.SizeF availableSize) Line 836 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.Model.RadDocument.Measure(Telerik.Windows.Documents.Model.SizeF measureSize) Line 1515 C#  Telerik.Windows.Documents.dll!Telerik.Windows.Documents.UI.DocumentPrintLayoutPresenter.MeasureOverride(System.Windows.Size availableSize) Line 714 C#

To work this around, use the DeleteTableRow method of the RadDocumentEditor.

RadDocumentEditor documentEditor = new RadDocumentEditor(document);
documentEditor.DeleteTableRow(row);

In Development
Last Updated: 21 Mar 2025 09:14 by ADMIN
Scheduled for 2025 Q2 (May)
RadRichTextBox: Exception when one parses styles that contain specific (German) characters.
Unplanned
Last Updated: 11 Feb 2025 12:34 by Stenly
Created by: Stenly
Comments: 0
Category: RichTextBox
Type: Feature Request
0
The "Borders and Shading" dialog of MS Word allows you to specify a shader, which is currently not available as a functionality in the RadRichTextBox control. We could include such an option.

Image
Unplanned
Last Updated: 11 Feb 2025 09:51 by Stenly
Created by: Stenly
Comments: 0
Category: RichTextBox
Type: Feature Request
0
Currently, the AdjustShape method of RadRichTextBox is internal, which contradicts with the information in the documentation. We could expose this method, as well as its related API.
Unplanned
Last Updated: 10 Feb 2025 13:10 by Martin Ivanov

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

Unplanned
Last Updated: 24 Jan 2025 17:15 by Martin Ivanov

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."

Image

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.


Unplanned
Last Updated: 20 Jan 2025 10:26 by Ivan
DropMarker/Caret size doesn't account for document zoom/scale level. When the dragging text with 50% scale the care is still at 100%.
Unplanned
Last Updated: 17 Jan 2025 17:18 by Stenly
Opening a context menu on an image that is added on a page, which is not the first one, is displayed at the top of the control and not on the image.
In Development
Last Updated: 14 Mar 2025 08:26 by ADMIN
Scheduled for 2025 Q2 (May)
If I select multiple Paragraphs and TabForward, all paragraphs will be indented by [indent value]*[selected paragraphs]
Completed
Last Updated: 11 Feb 2025 07:40 by ADMIN
Release 2025.1.211 (2025 Q1)

A SocketException can occur when the ImageInline source is assigned to a link pointing to a picture on a remote server (a website). For example: UriSource ="https://docs.telerik.com/devtools/wpf/knowledge-base/images/kb-chartview-categorical-and-datetime-axis-0.png"

This could happen during the fetching of the image stream. In some cases, the server may give a NetworkStream or ConnectionStream, or similar Stream implementation, which keeps an open connection between the application and the server. If the connection get severed during the stream reading, an exception is thrown. 

The exception message is: "Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host."

The stacktrace is:

Exception Info: System.Net.Sockets.SocketException
  at System.Net.Sockets.NetworkStream.Read(Byte[], Int32, Int32)
Inner Exception:
Exception Info: System.IO.IOException
  at System.Net.ConnectStream.Read(Byte[], Int32, Int32)
  at System.IO.Stream.InternalCopyTo(System.IO.Stream, Int32)
  at Telerik.Windows.Documents.Layout.ExtensionMethods.ToMemoryStream(System.IO.Stream)
  at Telerik.Windows.Documents.Model.ImageInline.<SetStreamFromUriSource>b__0(System.Object, StreamReadyEventArgs)
  at Telerik.Windows.Documents.Utils.ResourceStreamLocator.OnStreamReady()
  at System.Net.WebClient.OnOpenReadCompleted(System.Net.OpenReadCompletedEventArgs)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
  at System.Windows.Threading.DispatcherOperation.InvokeImpl()
  at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
  at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
  at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
  at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
  at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
  at System.Windows.Threading.DispatcherOperation.Invoke()
  at System.Windows.Threading.Dispatcher.ProcessQueue()
  at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
  at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
  at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
  at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
  at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
  at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
  at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
  at System.Windows.Application.RunDispatcher(System.Object)
  at System.Windows.Application.RunInternal(System.Windows.Window)

In Development
Last Updated: 14 Mar 2025 08:26 by ADMIN
Scheduled for 2025 Q2 (May)
Having a table, for example, with empty cells, executing the TabBackwardsCommand does not move the caret to the previous cell of the row.
Unplanned
Last Updated: 25 Dec 2024 10:22 by Stenly
When the layout of the RadRichTextBox control is set to Flow, inserting an image (with Text Wrapping set to Behind Text) into a black document and moving it, can cause its content to not be displayed.
Unplanned
Last Updated: 25 Mar 2025 07:51 by ADMIN
'Fit to Content' table is not pasted properly when copied from MS Word
Unplanned
Last Updated: 18 Dec 2024 09:55 by Keisuke
Editing hyperlink image leads to duplication of the image.
Completed
Last Updated: 16 Jan 2025 11:41 by ADMIN
Release 2024.4.1219 (Preview)
IOException while exporting the document to byte array(PDF)
1 2 3 4 5 6