Completed
Last Updated: 19 Oct 2026 13:12 by ADMIN

Expose a way to disable the Spell Checking Complete dialog:

Unplanned
Last Updated: 14 Oct 2026 13:58 by ADMIN
Enhance RadMultiColumnComboBox so that, when AutoFilter is enabled, committing text through an Input Method Editor (IME) automatically opens or updates the dropdown with matching items.
Unplanned
Last Updated: 13 Oct 2026 11:29 by ADMIN

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: 08 Oct 2026 12:01 by ADMIN
Improve RTF import support to preserve section-column layouts. Currently, repeated section-property declarations with unequal-width columns can produce duplicate columns and incorrect text layout. This affects both importing RTF files and pasting RTF content from Microsoft Word.
Completed
Last Updated: 08 Oct 2026 05:56 by ADMIN
Release 2026.3.1007
Created by: Jan Brandenburger
Comments: 5
Category: PdfViewer
Type: Feature Request
17
An implementation of JPXDecoder should be created to allow the decompression of data encoded using the wavelet-based JPEG2000 standard.
Completed
Last Updated: 07 Oct 2026 13:43 by ADMIN
Release 2026.3.1007

I was trying to move the NewRow to the bottom of the RadVirtualGrid. This is also supported by its big brother RadGridView. I have now learned that this is not supported by RadVirtualGrid.

Hereby my request: Please support this!

I've created a Harmony patch (which works for me); it might help you if you decide to support it:

	static class MoveNewRowToBottom
	{
		[HarmonyPatch(typeof(VirtualGridTableElement), "InvalidatePinnedRows")]
		static class VirtualGridTableElement_InvalidatePinnedRows
		{
			static private bool _isInvalidating;

			static private bool Prefix(VirtualGridTableElement __instance)
			{
				if (_isInvalidating)
					return false;
				_isInvalidating = true;

				__instance.ViewElement.TopPinnedRows.DisposeChildren();
				__instance.ViewElement.BottomPinnedRows.DisposeChildren();

				var viewInfo = __instance.ViewInfo;
				var rowsViewState = __instance.RowsViewState;
				var topPinnedItems = rowsViewState.TopPinnedItems;
				var bottomPinnedItems = rowsViewState.BottomPinnedItems;

				if (viewInfo.ShowFilterRow)
					if (!topPinnedItems.Contains(RadVirtualGrid.FilterRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.FilterRowIndex))
						rowsViewState.SetPinPosition(RadVirtualGrid.FilterRowIndex, PinnedRowPosition.Top);

				if (viewInfo.ShowNewRow)
					if (!topPinnedItems.Contains(RadVirtualGrid.NewRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.NewRowIndex))
						rowsViewState.SetPinPosition(RadVirtualGrid.NewRowIndex, PinnedRowPosition.Top);

				if (viewInfo.ShowHeaderRow)
					if (!topPinnedItems.Contains(RadVirtualGrid.HeaderRowIndex) && !bottomPinnedItems.Contains(RadVirtualGrid.HeaderRowIndex))
						rowsViewState.SetPinPosition(RadVirtualGrid.HeaderRowIndex, PinnedRowPosition.Top);

				var elementProvider = __instance.RowScroller.ElementProvider;

				var topPinnedRows = __instance.ViewElement.TopPinnedRows;
				foreach (int topPinnedRow in topPinnedItems.SortTopRowIndexes())
				{
					VirtualGridRowElement pinnedRow = (VirtualGridRowElement)elementProvider.GetElement(topPinnedRow, null);
					topPinnedRows.Children.Add(pinnedRow);
					pinnedRow.Attach(topPinnedRow, null);
				}

				var bottomPinnedRows = __instance.ViewElement.BottomPinnedRows;
				foreach (int bottomPinnedRow in bottomPinnedItems.SortBottomRowIndexes())
				{
					VirtualGridRowElement pinnedRow = (VirtualGridRowElement)elementProvider.GetElement(bottomPinnedRow, null);
					bottomPinnedRows.Children.Add(pinnedRow);
					pinnedRow.Attach(bottomPinnedRow, null);
				}

				_isInvalidating = false;
				return false;
            }
		}

		static private IEnumerable<int> SortTopRowIndexes(this ReadOnlyCollection<int> topRowIndexes)
		{
			var specialRowIndex = topRowIndexes.Where(index => index < 0).ToList();
			if (specialRowIndex.Contains(RadVirtualGrid.HeaderRowIndex))
				yield return RadVirtualGrid.HeaderRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.NewRowIndex))
				yield return RadVirtualGrid.NewRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.FilterRowIndex))
				yield return RadVirtualGrid.FilterRowIndex;
			foreach (var index in topRowIndexes.Where(index => index >= 0))
				yield return index;
		}

		static private IEnumerable<int> SortBottomRowIndexes(this ReadOnlyCollection<int> bottomRowIndexes)
		{
			foreach (var index in bottomRowIndexes.Where(index => index >= 0))
				yield return index;
			var specialRowIndex = bottomRowIndexes.Where(index => index < 0).ToList();
			if (specialRowIndex.Contains(RadVirtualGrid.FilterRowIndex))
				yield return RadVirtualGrid.FilterRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.NewRowIndex))
				yield return RadVirtualGrid.NewRowIndex;
			if (specialRowIndex.Contains(RadVirtualGrid.HeaderRowIndex))
				yield return RadVirtualGrid.HeaderRowIndex;
		}
	}

Completed
Last Updated: 07 Oct 2026 13:42 by ADMIN
Release 2026.3.1007
The specified format in the DisplayFormat attribute should be considered when automatically generating the GridViewDateTimeColumn.

public RadForm1()
{
    InitializeComponent();

    List<Item> items = new List<Item>();
    for (int i = 0; i < 5; i++)
    {
        items.Add(new Item(DateTime.Now.AddDays(i)));
    }

    this.radGridView1.DataSource = items;
    this.radGridView1.AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill;
}

public class Item
{
    [System.ComponentModel.DisplayName("My Date")]
    [System.ComponentModel.DataAnnotations.DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
    public DateTime Date { get; set; }

    public Item(DateTime date)
    {
        this.Date = date;
    }
}
Completed
Last Updated: 07 Oct 2026 13:41 by ADMIN
Release 2026.3.1007
Created by: Micah
Comments: 1
Category: GridView
Type: Feature Request
2
Add support for data annotations.
Completed
Last Updated: 07 Oct 2026 07:15 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 3
Category:
Type: Feature Request
0
This item is migrated to the Telerik Document Processing portal: 
http://feedback.telerik.com/Project/184/Feedback/Details/190130 
Please use the new item for commenting, voting and subscribing instead of this one.
In Development
Last Updated: 06 Oct 2026 11:57 by ADMIN
ADMIN
Created by: Jack
Comments: 1
Category: GridView
Type: Feature Request
3
We should consider the Display attribute when using business objects as data source in RadGridView.
Duplicated
Last Updated: 08 Sep 2026 09:48 by ADMIN
Created by: Radek
Comments: 1
Category: Label
Type: Feature Request
2
Unplanned
Last Updated: 03 Sep 2026 10:38 by ADMIN
Created by: Marian
Comments: 1
Category: Wizard
Type: Feature Request
0
 
Unplanned
Last Updated: 31 Aug 2026 12:07 by ADMIN
Completed
Last Updated: 13 Aug 2026 09:34 by ADMIN
Release 2026.3.812 (2026 Q3)
Created by: Robert
Comments: 1
Category: AIPrompt
Type: Feature Request
1
Add a LocalizationProvider for the strings used in the control. 
Completed
Last Updated: 13 Aug 2026 09:34 by ADMIN
Release 2026.3.812 (2026 Q3)
Declined
Last Updated: 23 Jul 2026 11:24 by ADMIN
Created by: Sumayya
Comments: 2
Category: UI Framework
Type: Feature Request
0

			
Unplanned
Last Updated: 23 Jul 2026 08:19 by ADMIN
Created by: Camille
Comments: 1
Category: RibbonBar
Type: Feature Request
1
Provide the possibility to add a RadLabelElement into the RadRibbonBarGroup at design time.
Unplanned
Last Updated: 23 Jul 2026 08:17 by ADMIN

Introduce support for reordering items within a RadRibbonBarGroup, allowing new buttons to be inserted at any position and existing buttons to be moved between different RadRibbonBarGroups.


Unplanned
Last Updated: 08 Jul 2026 13:18 by ADMIN
Created by: Al
Comments: 3
Category: RichTextEditor
Type: Feature Request
1
 
Unplanned
Last Updated: 29 Jun 2026 08:59 by ADMIN
Created by: Simon
Comments: 1
Category: Chat
Type: Feature Request
0

Add support for resizing the RadChat input text box, allowing users to adjust its height/width by dragging its top edge. This would make it easier to compose longer messages and provide a more flexible chat experience. The control should allow users to set the input area to their preferred size.

1 2 3 4 5 6