In Development
Last Updated: 16 Jan 2026 14:00 by ADMIN
Created by: Iva
Comments: 4
Category: RichTextBox
Type: Feature Request
6
Currently, the only customization that can be performed is using HyperlinkToolTipFormatString property of RadRichTextBox, which sets the format for all hyperlinks in the document of the control. It would be nice if it were possible to be able to set different tooltips. 
Unplanned
Last Updated: 15 Jan 2026 13:21 by Markus
Created by: Markus
Comments: 0
Category: PDFViewer
Type: Bug Report
0

The PDF document with images shows black canvas:

NOTE:

Works OK in version 2023.2.713
Broken in version 2023.3.1005
Unplanned
Last Updated: 15 Jan 2026 12:44 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 Jan 2026 09:12 by Stenly
A NullReferenceException is thrown when a KML file is read, which contains an empty BalloonStyle tag.
Unplanned
Last Updated: 14 Jan 2026 19:47 by Valentin

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: 13 Jan 2026 11:14 by Martin Ivanov
Add an option to disable the file system watcher used by the RadFileDialogs.
Unplanned
Last Updated: 13 Jan 2026 10:08 by Stenly
Unplanned
Last Updated: 12 Jan 2026 15:14 by ADMIN
No license found for Telerik UI for WPF when using Wix installer.
In Development
Last Updated: 12 Jan 2026 08:53 by ADMIN
 Unify the keyboard selection in tables with the arrow keys to match MS Word.
Unplanned
Last Updated: 09 Jan 2026 16:01 by Stenly
Currently, when using the RadSpreadsheet with the RadSpreadsheetRibbon, the performance can be reduced when performing selection and edit operations in fast succession.

We could check if we could improve the performance in this scenario.
Unplanned
Last Updated: 09 Jan 2026 11:25 by ADMIN
ADMIN
Created by: Tanya
Comments: 14
Category: UI for WPF
Type: Feature Request
37
Enable the customers to create and modify .pptx (PowerPoint) files . They need processing as well as showing such documents.
Won't Fix
Last Updated: 08 Jan 2026 17:07 by ADMIN

RadHighlightTextBlock — Text binding stops updating when HighlightText is used

.Net framework 4.7.2
Telerik WPF Version 2025.1.211.462

Detailed Information

When developing an application using Telerik's RadHighlightTextBlock control, I encountered the following issues:

When attempting to dynamically update the control's `Text` and `HighlightText` properties through data binding, the control fails to display the updated content correctly. Specifically:

  1. After updating property values in the ViewModel, RadHighlightTextBlock doesn't display the new text content
  2. Even if the text updates, the highlighted portion doesn't correctly reflect the new HighlightText value
  3. The control's UI display is inconsistent with the actual values in the data model

I have confirmed that:

  • Data binding paths are correct
  • ViewModel implements INotifyPropertyChanged
  • Other controls bound to the same data source update correctly

I suspect this might be an issue with RadHighlightTextBlock's internal update handling mechanism, or it may require specific settings to properly handle dynamic update scenarios.

My Code:

MainWindow.xaml

<Window x:Class="RadHighlightTextBlock_Issue.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:RadHighlightTextBlock_Issue"
        xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <local:MyViewModel x:Key="MyViewModel"/>
    </Window.Resources>
    <StackPanel>
        <telerik:RadHighlightTextBlock x:Name="highlightTextBlock" 
                                       Text="{Binding Source={StaticResource MyViewModel}, Path=SelectedItem.Description}"
                                      HighlightText="{Binding Source={StaticResource MyViewModel}, Path=SelectedItem.HighlightText}"
                                      HighlightForeground="Red"
                                      HighlightBackground="Yellow"
                                      FontSize="16"
                                      Margin="10"/>
        <telerik:RadButton Content="Content0" Command="{Binding Source={StaticResource MyViewModel}, Path=C0Command}"/>
        <telerik:RadButton Content="Content1" Command="{Binding Source={StaticResource MyViewModel}, Path=C1Command}"/>
    </StackPanel>
</Window>

MainWindow.xaml.cs

using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Input;

namespace RadHighlightTextBlock_Issue
{
    /// <summary>
    /// MainWindow.xaml 的互動邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void RadButton_Click(object sender, RoutedEventArgs e)
        {
            highlightTextBlock.Text = "This is a sample text to demonstrate the RadHighlightTextBlock control.";
        }

        private void RadButton_Click_1(object sender, RoutedEventArgs e)
        {
            highlightTextBlock.Text = "This is another sample text for the second button.";
        }
    }

    public class MyViewModel : INotifyPropertyChanged
    {
        public ObservableCollection<DataItem> Items { get; set; }
        public MyViewModel()
        {
            Items = new ObservableCollection<DataItem>
            {
                new DataItem { HighlightText = "sample", Description = "This is a sample description." },
                new DataItem { HighlightText = "second", Description = "This is the second item description." },
                new DataItem { HighlightText = "text", Description = "This item contains the word text." }
            };

            SelectedItem = Items.FirstOrDefault();
        }

        public ICommand C0Command => new RelayCommand<object>((obj) =>
        {
            SelectedItem = Items.FirstOrDefault();
        });

        public ICommand C1Command => new RelayCommand<object>((obj) =>
        {
            SelectedItem = Items.LastOrDefault();
        });

        private DataItem _selectedItem;
        public DataItem SelectedItem
        {
            get { return _selectedItem; }
            set
            {
                if (_selectedItem != value)
                {
                    _selectedItem = value;
                    OnPropertyChanged();
                }
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;

        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = "")
        {
            var handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }

    public class DataItem
    {
        public string HighlightText { get; set; }
        public string Description { get; set; }
    }

    /*Implement RelayCommand...*/
}

Has anyone encountered a similar issue? Is there any way to resolve it?
Thank you all.

Unplanned
Last Updated: 08 Jan 2026 13:56 by Martin Ivanov
Currently, on lost focus of RadDateTimePicker, the input text is validated and if it is not in the proper date-time format the text is cleared. This forces the user to write the full date-time value again when a mistake is made. Add a mechanism to allow invalid date-time texts without automatically clearing the text input field. 
In Development
Last Updated: 06 Jan 2026 09:06 by ADMIN
ADMIN
Created by: Tina Stancheva
Comments: 0
Category: UI for WPF
Type: Feature Request
0
When developing live (localization/resource) display language switching for SL5, the LocalizationManager should allow to update all localization strings applied through the ResourceManager. In SL5 it's not possible to listen to an attached dependency property for all dependency objects. Therefore it would help to have a way to know when the attached ResourceKey dependency property changes (and on which DependencyObject) in the LocalizationManager. 
Unplanned
Last Updated: 26 Dec 2025 12:14 by Martin Ivanov

The fill selection stops working, after a filtering is applied and the currently selected cell is filtered out (it gets hidden). This prevents from displaying the fill selection cross displayed when you hover the bottom right corner of a selected cell. Any further changes in the selection doesn't re-enable the selection fill feature.

To work this around, you can set the IsEnabled property of the FillSelection on selection changed.

private RadWorksheetEditor activeWorksheetEditor;

public MainWindow()
{
  InitializeComponent();

  this.spreadsheet.ActiveSheetEditorChanged += (s, e) =>
  {
 if (activeWorksheetEditor != null)
 {
 activeWorksheetEditor.Selection.SelectionChanged -= Selection_SelectionChanged;
 }

 activeWorksheetEditor = this.spreadsheet.ActiveWorksheetEditor;
 activeWorksheetEditor.Selection.SelectionChanged += Selection_SelectionChanged;
  };
}

private void Selection_SelectionChanged(object? sender, EventArgs e)
{
  this.spreadsheet.ActiveWorksheetEditor.Selection.FillSelection.IsEnabled = true;
}

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);
 };

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. 
In Development
Last Updated: 19 Dec 2025 09:01 by ADMIN
Font weight, size and other current editing style properties are not preserved when document layout is performed, for example in the following cases:
- the document is in web layout mode and the controls is resized
- scroll bar changes its visibility.

Steps to reproduce:
- Set RadRichTextBox to Web layout mode.
- Type a word, select it and make it bold.
- Press enter and type a word
- Repeat the previous step until RadRichTextBox height is reached and scrollbar appear.
- Type a word.
Expected: The last word is bold.
Actual: The last word is not bold.
In Development
Last Updated: 19 Dec 2025 07:36 by ADMIN

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);
            }
        }
    }
}

1 2 3 4 5 6