Unplanned
Last Updated: 13 Oct 2026 11:26 by Dess

In Microsoft Word, the drag-and-drop functionality for Structured Document Tags (Content Controls) allows users to reposition an entire content control and all its contents within the document using the mouse.

What it does

When a user selects the boundary/frame of a content control rather than the text inside it:

  • The entire content control is treated as a single unit.
  • The control, including its metadata (tag, title, locking settings, data binding, etc.), moves to a new location.
  • The content control remains a content control after the move.
  • Nested controls move together with the parent control.
  • Users can reorganize document sections without cutting and pasting.

Typical workflow

  • Hover over a content control until its boundary becomes visible.
  • Click the control's tag or border to select the whole control.
  • Drag it to another location in the document.
  • Release the mouse button to drop it at the new location.

Common use cases

  • Reordering form sections.
  • Rearranging template building blocks.
  • Moving clauses in legal documents.
  • Organizing repeating sections or structured content in reports.
  • Reorganizing content that is bound to custom XML data.

Important limitations

The behavior may be restricted when:

  • The content control is configured as "Content Control Cannot Be Deleted".
  • The document is protected.
  • The control resides in certain structures (for example, specific table layouts or protected regions).
  • Editing restrictions are applied.

Word allows users to treat a content control as a movable document object, enabling the entire SDT and its contents to be repositioned via drag-and-drop while preserving the control's structure and properties.

Unplanned
Last Updated: 09 Oct 2026 08:43 by ADMIN

HTML import fails when an image has an align tag set to a value different from center

<img align="top"
     width="170" height="61" />

 

Completed
Last Updated: 07 Oct 2026 13:36 by ADMIN
Release 2026.3.1007
In this scenario, the RadRichTextBox is placed inside a RadTabControl. When switching between tabs and returning to the tab containing RadRichTextBox, we can no longer type in the control.
Completed
Last Updated: 17 Jul 2026 09:41 by ADMIN
Release Telerik UI for WPF 2026.2.701
Created by: Swapnil
Comments: 1
Category: RichTextBox
Type: Bug Report
0
After selecting a word, pressing the left arrow key places the cursor on the right side of the word rather than moving it to the left as expected.
Completed
Last Updated: 17 Jul 2026 09:41 by ADMIN
Release Telerik UI for WPF 2026.2.701
Inspecting a DocumentPosition instance in the Visual Studio debugger triggers recursive DebuggerDisplay expansion. The displayed tooltip repeats Position and Location values until Visual Studio reports that DebuggerDisplay evaluation reached max recursion count.


Unplanned
Last Updated: 07 May 2026 12:47 by Martin Ivanov
Moving the caret position after the SdtRangeEnd and changing the span properties (via Style or by using the ChangeFontFamily, ChangeForeColor, etc, methods of RadDocumentEditor) doesn't change the style of the text entered after the SdtRangeEnd.
Completed
Last Updated: 20 May 2026 11:37 by ADMIN
Release 2026.2.520 (2026 Q2)
The PlaceholderText of a content control's Placeholder is no saved during XAML export.
Unplanned
Last Updated: 01 May 2026 07:43 by Martin Ivanov
Add keyboard navigation in the DropDownList and ComboBox SDT elements (content controls) of RadRichTextBox. 
Alt(or another modifier)+Down for drop down opening and Up and Down arrows for navigation in the items.
Completed
Last Updated: 13 Aug 2026 09:40 by ADMIN
Release Telerik UI for WPF 2026.3.812 (Q3 2026)

When a DropDownList SDT form is saved in a XAML document and then imported with the XamlFormatProvider, an extra ListItem entry is added in the items collection of the DropDownList. The extra entry is the default "Choose an item".

To work this around, iterate all ComboBoxProperties and manually remove duplicates of the "Choose an item" entry.

var dropDownLists = radRichTextBox.Document.EnumerateChildrenOfType<SdtRangeStart>()
     .Where(x => x.SdtProperties is ComboBoxProperties)
     .Select(x => x.SdtProperties).OfType<ComboBoxProperties>();
 var defaultItemString = LocalizationManager.GetString("Documents_ContentControlsGenerator_ListItem");
 foreach (var item in dropDownLists)
 {
     if (item.Items.Count > 0 && item.Items.Any(x => x.Value != defaultItemString) && item.Items.Any(x => x.Value == defaultItemString))
     {
         var occurrence = item.Items.FirstOrDefault(x => x.Value == defaultItemString);
         while (occurrence != null)
         {
             item.Items.Remove(occurrence);
             occurrence = item.Items.FirstOrDefault(x => x.Value == defaultItemString);
         }
     }
 }

Unplanned
Last Updated: 29 Apr 2026 15:24 by Martin Ivanov
Font settings are not applied for newly typed text when using the font properties dialog to change the font.
Unplanned
Last Updated: 28 Apr 2026 13:02 by Martin Ivanov
Created by: Martin Ivanov
Comments: 0
Category: RichTextBox
Type: Feature Request
0
Currently, the SdtProperties classes (ex: DateProperties) can be extended by overriding the GetBuilder() method. This allows you to implement custom ISdtBuilder that creates the document content of the SDT form. However, the custom properties are not taken into account during import/export. Consider adding some kind of custom information about the custom SdtProperties type during export and restore it during import. Or at the least provide API (like an event or method override) that can intercept the creation of the SdtProperties during import which will allow you to replace the default SdtProperties object.
Completed
Last Updated: 07 Oct 2026 13:35 by ADMIN
Release 2026.3.1007
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.
Completed
Last Updated: 20 May 2026 11:37 by ADMIN
Release 2026.2.520 (2026 Q2)
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)

1 2 3 4 5 6