Unplanned
Last Updated: 06 Apr 2026 12:09 by Martin Ivanov
The text content control (SDT form) cannot be edited when the Lock property of the associated SdtProperties is set to SdtLocked. The SdtLocked setting should prevent deletion of the form only, but the user should be able to still edit the text. 
The issue reproduces only if the content control was locked before any text is entered (when the text placeholder is displayed). 

 
Unplanned
Last Updated: 03 Apr 2026 15:54 by Martin Ivanov

Add protection mode that allows to make the document readonly, but allow forms editing. In MS Word this can be enabled via the "Restrict Editing" menu. The option is called "Filling in forms" and protects the document, but leaves the Sdt elements (the forms) editable.

Unplanned
Last Updated: 25 Mar 2026 10:00 by Martin Ivanov
Currently, when you insert a content control using TextProperties, CheckBoxProperties, etc., the applied font is the default one for the content controls. Instead, it should use the font of the associated span/paragraph where it was inserted. For example, if you type "Hello world" and set its font size to 36, then place the cursor between "Hello" and "world" and insert a textbox content control there, the font size of the textbox will be something like 10, instead of 36.

Synchronize the font properties and make sure that the content control uses same font as the existing paragraph/span.
Unplanned
Last Updated: 20 Mar 2026 14:20 by Martin Ivanov
Make the UpdateViewPort of the SelectionUILayer class virtual so it can be overridden, thus allowing customization of the selection rectangle drawn in the UI.
Unplanned
Last Updated: 17 Mar 2026 13:18 by Stenly
The Polygon elements that represent the background and border of a content control can have their size changed when adding a new line or a paragraph. 
Unplanned
Last Updated: 19 Jan 2026 09:15 by Stenly
Created by: Stenly
Comments: 0
Category: RichTextBox
Type: Feature Request
1
Currently, the RadRichTextBox control does not support selecting multiple images as MS Word does when the Wrap Text option is not set to In Line with Text.
Unplanned
Last Updated: 25 Dec 2025 16:34 by Martin Ivanov
The caret position is wrong on down arrow key press when moving between two lines separated by a line break. This happens when you type longer text in the first line and then press the down arrow key to move to the next line, which is shorter. The caret should be placed at the end of the second line, but instead it is positioned few characters before the end of the line.
Unplanned
Last Updated: 25 Dec 2025 13:25 by Martin Ivanov

The line break symbol (Shift+Enter) is treated as a text character and it gets measured in the document position calculations executed when you click at the end of the document (somewhere after the line break symbol which ends the line). 

This causes two visual issues. The first one is that the caret goes after the line break symbol, which means that when ShowFormattingSymbols is False an empty space (non-existing in the document) is added at the end of the line. Even if ShowFormattingSymbols=true and the line break symbol gets display, it is not expected for ,the caret to get positioned after the symbol.

The second issues is that, when you start typing after you click at the end of the line, the caret position is corrected, but this leads to a jumps of the caret with one character to the left, which brings an unpleasant visual glitch.

To work this around, you can create a custom MouseSelectionHandler and override its RegisterDocumentMouseDown method. This will allow you to check if the caret is placed after the line break symbol and manually update the caret position if that is the case.

public class CustomMouseSelectionHandler : MouseSelectionHandler
{
    private IDocumentEditorPresenter presenter;
    private RadDocument document;

    public CustomMouseSelectionHandler(RadDocument document, IDocumentEditorPresenter presenter) 
        : base(document, presenter)
    {
        this.presenter = presenter;
        this.document = document;
    }      

    public override void RegisterDocumentMouseDown(bool ctrlPressed, bool shiftPressed, Point position, UIElement originalSource = null, SourceType source = SourceType.Mouse)
    {
        base.RegisterDocumentMouseDown(ctrlPressed, shiftPressed, position, originalSource, source);
        var box = this.document.CaretPosition.GetCurrentSpanBox();
        if (box != null && box.AssociatedSpan.Text == "¬")
        {
            document.CaretPosition.MoveToCurrentLineEnd();
        }
    }
}
To register the custom handler, use the MouseSelectionHandler property of the ActiveEditorPresenter.

 this.richTextBox.Loaded += (s, args) =>
 {
     var presenter = (DocumentPresenterBase)this.richTextBox.ActiveEditorPresenter;
     presenter.MouseSelectionHandler = new CustomMouseSelectionHandler(this.richTextBox.Document, presenter);
 };

Won't Fix
Last Updated: 24 Mar 2026 10:53 by ADMIN

ArgumentException occurs when using the voice typing feature of Windows (started with the Windows Key + H key combo) to convert speech to text in RadRichTextBox.

Exception stacktrace:

System.ArgumentException: 'Requested distance is outside the content of the associated document.'PresentationFramework.dll!System.Windows.Documents.TextPointer.TextPointer(System.Windows.Documents.TextContainer textContainer, int offset, System.Windows.Documents.LogicalDirection direction)
  PresentationFramework.dll!System.Windows.Documents.TextContainer.CreatePointerAtOffset(int offset, System.Windows.Documents.LogicalDirection direction) 
  PresentationFramework.dll!System.Windows.Documents.TextParentUndoUnit.Do() 
  PresentationFramework.dll!MS.Internal.Documents.UndoManager.Redo(int count) 
  PresentationFramework.dll!System.Windows.Documents.TextStore.RedoQuietly(int count)  PresentationFramework.dll!System.Windows.Documents.TextStore.SetFinalDocumentState(MS.Internal.Documents.UndoManager undoManager, System.Collections.Stack imeChangeStack, int appChangeCount, int imeSelectionAnchorOffset, int imeSelectionMovingOffset, int appSelectionAnchorOffset, int appSelectionMovingOffset)  PresentationFramework.dll!System.Windows.Documents.TextStore.HandleCompositionEvents(int previousUndoCount)  PresentationFramework.dll!System.Windows.Documents.TextStore.GrantLockWorker(MS.Win32.UnsafeNativeMethods.LockFlags flags)   PresentationFramework.dll!System.Windows.Documents.TextStore.RequestLock(MS.Win32.UnsafeNativeMethods.LockFlags flags, out int hrSession)

Unplanned
Last Updated: 24 Dec 2025 08:36 by Martin Ivanov
Created by: Martin Ivanov
Comments: 0
Category: RichTextBox
Type: Feature Request
1
Improve the performance of the document import. Currently, large documents take a lot of time to get imported with the DocxFormatProvider, even if not assigned to the RadRichTextBox control. 
Completed
Last Updated: 11 Feb 2026 09:14 by ADMIN
Release 2026.1.211 (2026 Q1)

FormatException is thrown during the import of a table coming from a docx document when the application culture is "sv-SE". This happens when the column width in the document is a floating point number (ex: 120.65). The Swedish culture uses "," as decimal separator and " " as the number group separator, which makes any invariant decimal value (like 120.65) invalid during standard parsing (ex: float.Parse("120.65")).

Stacktrace:

FormatException: The input string '4514.5' was not in the correct format.
at System.Single.Parse(String s)
Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.TableImporter.ImportTableGrid(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Parsing.Style style)  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.TableImporter.Import(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Parsing.Style parentStyle)  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.BuildTable(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Parsing.Style parentStyle)  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.BuildBody()  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.BuildDocument()  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.Import()Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.ReadXmlContentFromPackage(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxPartImporterBase importer)  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.ReadXmlContentAndRelationsFromPackage(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxPartImporterBase importer)
Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.Import()  Telerik.Windows.Controls.RichTextBox.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider.Import(System.IO.Stream input) 

To work this around, switch to InvariantCulture during the import and return the original culture after that.

 var cultureCache = Thread.CurrentThread.CurrentCulture;
 Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
 Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
 var provider= new DocxFormatProvider();
 rtb.Document = provider.Import(stream);
 Thread.CurrentThread.CurrentCulture = cultureCache;
 Thread.CurrentThread.CurrentUICulture = cultureCache;

Unplanned
Last Updated: 09 Dec 2025 10:29 by Martin Ivanov
Double clicking a word starting with a non-letter symbol selects the symbol as well, instead only selecting the word. 

"(hello)"

In the example above, if you double click on the word "hello", this should select only the word. However, it selects also the opening bracket. The final selection becomes "(hello".

Note that the issue occurs also if you click in the end of the word "hello" and use Ctrl+Shift+LeftArrow to select it to the beginning.
Completed
Last Updated: 11 Feb 2026 09:14 by ADMIN
Release 2026.1.211 (2026 Q1)

Working with the RadContextMenu that comes from the RadRichTextBoxUI, when having analytics enabled, produces a NullReferenceException.

Manually set the Menu property on the PreviewMouseLeftButtonUp event of the RadMenuItem:

static MainWindow()
{
    EventManager.RegisterClassHandler(typeof(RadMenuItem), PreviewMouseLeftButtonUpEvent, new MouseButtonEventHandler(OnRadMenuItemPreviewMouseLeftButtonUp), true);
}

private static void OnRadMenuItemPreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    RadMenuItem radMenuItem = (RadMenuItem)sender;

    RadContextMenu radContextMenu = radMenuItem.ParentOfType<RadContextMenu>();

    if (radContextMenu != null)
    {
        PropertyInfo menuPropertyInfo = radMenuItem.GetType().GetProperty("Menu", BindingFlags.Public | BindingFlags.Instance);
        if (menuPropertyInfo != null)
        {
            MethodInfo setMethod = menuPropertyInfo.GetSetMethod(true);
            if (setMethod != null)
            {
                Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    setMethod.Invoke(radMenuItem, new object[] { radContextMenu });
                }), System.Windows.Threading.DispatcherPriority.Background);
            }
        }
    }
}

Unplanned
Last Updated: 31 Oct 2025 11:38 by Martin Ivanov
Created by: Martin Ivanov
Comments: 0
Category: RichTextBox
Type: Feature Request
1
Currently, if you have img element in the HTML content which points to a link with an SVG image, the SVG is not imported. Instead, the missing image placeholder is displayed. Add support for importing SVG images. 
Unplanned
Last Updated: 20 Jan 2026 15:19 by Dennis

RichTextBox: Bullet list with several levels is not viewed correctly in WordPad. 

In Word, this works as expected. When the document is imported into RadRichTextBox, this works as well.

Unplanned
Last Updated: 15 Oct 2025 11:25 by Martin Ivanov
Currently, when you write down a web address (e.g. https://www.google.com) and move the caret outside of the address text (usually by pressing Space or Enter), the text is automatically wrapped in a hyperlink. Any further updates on the text won't update the underlying hyperlink address.

Add an option to auto-detect changes in the hyperlink text. This is valid only when the text matches the underlying link.
Unplanned
Last Updated: 14 Oct 2025 07:49 by Swapnil
Exception after rapidly editing the document and then performing multiple undo operations. 
Unplanned
Last Updated: 17 Sep 2025 14:55 by Martin Ivanov
Add support for export and import of the TextWrapping setting of the FloatingImageBlock to HTML. 
Completed
Last Updated: 11 Nov 2025 08:11 by ADMIN
Release Telerik UI for WPF 2025.4.1111 (2025 Q4)

The RichTextBox internal logic that imports .docx documents (DocxFormatProvider) doesn't support elements that don't need direct content, but have both start and end tags. Instead such elements should use self-closing tags. 

For example, instead of <w:vertAlign w:val="baseline"></w:vertAlign> it should be <w:vertAlign w:val="baseline"/>

When such element is read during import, issues may occur. Two main known issues here are with the w:vertAlign and Relationship tags.

Using

<w:vertAlign w:val="baseline"></w:vertAlign> 

instead of

<w:vertAlign w:val="baseline"/> 

throws NullReferenceException with the following stack trace:

System.NullReferenceException: 'Object reference not set to an instance of an object.'
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.OpenXmlHelper.ConvertStringToBaselineAlignment(string value) Line 168 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.SpanStyleImporter.ReadBaselineAlignment(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Parsing.Style style) Line 243 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.SpanStyleImporter.ReadStyle(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Parsing.Style style) Line 88 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.StyleDefinitionsImporter.ReadSpanStyleProperties(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Parsing.Style style) Line 278 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.StyleDefinitionsImporter.ReadStyle() Line 188 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.StyleDefinitionsImporter.Import() Line 67 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.ReadXmlContentFromPackage(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxPartImporterBase importer) Line 430 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.ReadXmlContentAndRelationsFromPackage(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxPartImporterBase importer) Line 406 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.Import() Line 190 C#  
Telerik.Windows.Documents.FormatProviders.OpenXml.dll!Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider.Import(System.IO.Stream input) Line 147 C#
Telerik.Windows.Documents.dll!Telerik.Windows.Documents.FormatProviders.DocumentFormatProviderBase.Import(byte[] input) Line 90 C#

Using

<Relationship Id="rId00004" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"></Relationship> 

instead of

<Relationship Id="rId00004" Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"/> 

throws KeyNotFoundException with the following stack trace:

KeyNotFoundException: The given key was not present in the dictionary.
    System.ThrowHelper.ThrowKeyNotFoundException() in ThrowHelper.cs
    System.Collections.Generic.Dictionary<TKey, TValue>.this[TKey].get(TKey) in Dictionary.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.PartRelationsImporter.GetRelationByID(string) in PartRelationsImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.GetRelationByID(string) in DocxImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.BuildSection() in MainDocumentImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.BuildBody() in MainDocumentImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.BuildDocument() in MainDocumentImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.MainDocumentImporter.Import() in MainDocumentImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.ReadXmlContentFromPackage(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxPartImporterBase) in DocxImporter.cs
    Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxImporter.ReadXmlContentAndRelationsFromPackage(Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.Import.DocxPartImporterBase) in DocxImporter.cs

To work this around, import the document with the WordsProcessing library. If you need to display it in RadRichTextBox, you can export it again using the WordsProcessing library. This will normalize the tags. Then import it again using the RadDocument's DocxFormatProvider.

 var dplDocxFormatProvider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider();
 RadFlowDocument flowDocument = dplDocxFormatProvider.Import(File.ReadAllBytes("../../../test.docx"), null);

 var docBytes = dplDocxFormatProvider.Export(flowDocument, null);
 File.WriteAllBytes("../../../modified-doc.docx", docBytes);

 var rtbDocxFormatProvider= new Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider();
 RadDocument document = rtbDocxFormatProvider.Import(File.ReadAllBytes("../../../modified-doc.docx"));

 

Unplanned
Last Updated: 17 Oct 2025 08:36 by ADMIN
Created by: Swapnil
Comments: 1
Category: RichTextBox
Type: Feature Request
0

Bold/Italic does not work for some font styles.

This might be a framework limitation in WPF: https://www.telerik.com/forums/some-fonts-are-not-able-to-bold-italic

Sample fonts list:

  1. Tw Cen MT Condensed Extra Bold (bold/italic)
  2. Tw Cen MT Condensed (bold/italic)
  3. Sitka Text Semibold (italic)
  4. Sitka Subheading Semibold (italic)
  5. Sitka Small Semibold (italic)
  6. Sitka Heading Semibold (italic)
  7. Sitka Display Semibold (italic)
  8. Sitka Banner Semibold (italic)
  9. Segoe UI Variable Text Semibold (italic)
  10. Segoe UI Variable Text Light (bold/italic)
  11. Segoe UI Variable Display Light (bold/italic)
  12. Segoe UI Semilight (bold/italic)
  13. Segoe UI Semibold (bold/italic)
  14. Segoe UI Light (bold/italic)
  15. Segoe UI Black (italic)
  16. Script MT Bold (bold/italic)
  17. Rockwell Condensed (bold/italic)
  18. Rockwell Extra Bold (italic)
  19. Rage Italic (bold/italic)
  20. OCR A Extended (bold/italic)
  21. Nirmala UI Semilight (bold/italic)
  22. Microsoft YaHei UI Light (bold/italic)
  23. Microsoft YaHei Light (bold/italic)
  24. Microsoft JhengHei UI Light (bold/italic)
  25. Microsoft JhengHei Light (bold/italic)
  26. Malgun Gothic Semilight (bold/italic)
  27. Leelawadee UI Semilight (bold/italic)
  28. Gloucester MT Extra Condensed (bold/italic)
  29. Gill Sans Ultra Bold Condensed (bold/italic)
  30. Gill Sans Ultra Bold (bold/italic)
  31. Gill Sans MT Ext Condensed Bold (bold/italic)
  32. Gill Sans MT Condensed (bold/italic)
  33. Franklin Gothic Medium Cond (bold/italic)
  34. Franklin Gothic Heavy (bold/italic)
  35. Franklin Gothic Medium (bold/italic)
  36. Franklin Gothic Demi (bold/italic)
  37. Franklin Gothic Demi Cond (bold/italic)
  38. Franklin Gothic Book (bold/italic)
  39. Dubai Medium (bold/italic)
  40. Dubai Light (bold/italic)
  41. Corbel Light (bold/italic)
  42. Copperplate Gothic Light (bold/italic)
  43. Copperplate Gothic Bold (bold/italic)
  44. Cooper Black (bold/italic)
  45. Cascadia Mono SemiLight (bold/italic)
  46. Cascadia Mono SemiBold (italic)
  47. Cascadia Mono Light (bold/italic)
  48. Cascadia Code SemiLight (bold/italic)
  49. Cascadia Mono ExtraLight (bold/italic)
  50. Cascadia Code SemiBold (italic)
  51. Cascadia Code Light (bold/italic)
  52. Cascadia Code ExtraLight (bold/italic)
  53. Candara Light (bold/italic)
  54. Calibri Light (bold/italic)
  55. Britannic Bold (bold/italic)
  56. Bodoni MT Condensed (bold/italic)
  57. Bodoni MT Black (italic)
  58. Bernard MT Condensed (bold/italic)
  59. Bahnschrift SemiLight Condensed (bold/italic)
  60. Bahnschrift SemiLight SemiConde (bold/italic)
  61. Bahnschrift SemiLight (bold/italic)
  62. Bahnschrift SemiBold (bold/italic)
  63. Bahnschrift SemiBold SemiConden (bold/italic)
  64. Bahnschrift SemiCondensed (bold/italic)
  65. Bahnschrift SemiBold Condensed (bold/italic)
  66. Bahnschrift Light Condensed (bold/italic)
  67. Bahnschrift Light  (bold/italic)
  68. Bahnschrift Condensed (bold/italic)
  69. Arial Rounded MT Bold (bold/italic)
  70. Arial Narrow (bold/italic)
  71. Arial Black (italic)

 

1 2 3 4 5 6