Hi Team,
We have a large-scale WPF application that uses the Telerik WPF RadGridView across multiple screens. We are experiencing significant memory growth issues. Upon deep analysis of the memory dump, we observed that the RadGridView continuously pushes DispatcherPriority items into the Dispatcher queue. We also noticed an internal timer within the RadGridView that appears to be active even after the control is no longer visible. We would like to understand how to completely detach and stop this internal timer once the control is removed from the screen, and why the RadGridView keeps pushing DispatcherItem entries into the Dispatcher queue.
Telerik Version : 2017.2.503.45
Environment:
Problem:
Visual Studio freezes frequently while editing XAML when using Telerik UI for WPF 2026.2.520.
The issue does NOT occur with Telerik UI for WPF 2026.1.415.
Steps to reproduce:
Additional information:
Could you please confirm whether this is a known issue related to Visual Studio 2026 / .NET 10 compatibility?
Workaround: Import the document without using the default command
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "All Spreadsheet Files (*.txt, *.csv, *.pdf, *.xlsx)|*.txt;*.csv;*.pdf;*.xlsx|Excel Workbook (*.xlsx)|*.xlsx|CSV (Comma delimited) (*.csv)|*.csv|Text (Tab delimited) (*.txt)|*.txt|All Files (*.*)|*.*";
if (openFileDialog.ShowDialog() == true)
{
string extension = Path.GetExtension(openFileDialog.SafeFileName);
using (Stream input = openFileDialog.OpenFile())
{
Workbook workbook = WorkbookFormatProvidersManager.Import(extension, input);
workbook.Name = openFileDialog.SafeFileName; // in the default implementation this is set after applying the document to RadSpreadsheet and triggers the event
this.radSpreadsheet.Workbook = workbook;
}
}
Since the last update, we receive often the following exception from our users log. I don't know exactly how to reproduce, but I know that when it happens, the user tries to click anywhere in the document and each time the exception is thrown. The users need to close and reopen the document to make it work again.
System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.Windows.Documents.UI.DocumentPresenterBase.CaretPosition_PositionChanged(Object sender, EventArgs e) at Telerik.Windows.Documents.DocumentPosition.MoveToPosition(DocumentPosition newPosition) at Telerik.Windows.Documents.Selection.MouseSelectionHandler.UpdateSelectionAndCaretPosition() at Telerik.Windows.Documents.Selection.MouseSelectionHandler.RegisterDocumentMouseMove(Point position, SourceType source) at Telerik.Windows.Documents.UI.DocumentPresenterBase.HandleMouseMoveOnPosition(Point position, SourceType source) at Telerik.Windows.Documents.UI.DocumentPresenterBase.Owner_MouseMove(Object sender, MouseEventArgs e) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.MouseDevice.Synchronize() at System.Windows.Input.MouseDevice.PostProcessInput(Object sender, ProcessInputEventArgs e) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
We also had this case when we try programatically to move the caret (seems to be the same end result exception):
System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.Windows.Documents.UI.DocumentPresenterBase.CaretPosition_PositionChanged(Object sender, EventArgs e)
at Telerik.Windows.Documents.DocumentPosition.MoveToDocumentStart()
at Telerik.Windows.Documents.DocumentPosition.MoveToFirstPositionInDocument()
The label of the field that allows you to set the ScreenTip in the Hyperlink dialog is not vertically centered to the associated textbox visual. This reproduces in the Windows11 theme.
To work this around, get the TextBlock element in the Hyperlink dialog and set its VerticalAlignment property to Center.
private void RadSpreadsheet_Loaded(object sender, RoutedEventArgs e)
{
var hyperlinkDialog = this.spreadsheet.ActiveWorksheetEditor.Dialogs.HyperlinkDialog as HyperlinkDialogContent;
hyperlinkDialog.Loaded += HyperlinkDialog_Loaded;
}
private void HyperlinkDialog_Loaded(object sender, RoutedEventArgs e)
{
var dialog = (HyperlinkDialogContent)sender;
var screenTipLocalizedText = LocalizationManager.Manager.GetStringOverride("Spreadsheet_InsertHyperlinkDialog_ScreenTip");
var screenTipTb = dialog.ChildrenOfType<TextBlock>().FirstOrDefault(x => x.Text == screenTipLocalizedText);
if (screenTipTb != null)
{
screenTipTb.VerticalAlignment = VerticalAlignment.Center;
}
}
The PDF document with images shows black canvas:
NOTE:
Works OK in version 2023.2.713Currently Minimize\Restore\Maximize buttons are not shown in the ToolWindow's header, so there are some inconveniences in use. For example, it's impossible to minimize tool windows easily.
For the Spanish culture, some of the localization strings are for the German culture.
The following resource keys are the ones containing wrong values:
To work around this, you could introduce a custom LocalizationManager and override the GetStringOverride method.
More information about this suggestion can be found here.
public class CustomScheduleView : RadScheduleView
{
protected override void OnActiveViewDefinitionChanged(ViewDefinitionBase oldValue, ViewDefinitionBase newValue)
{
base.OnActiveViewDefinitionChanged(oldValue, newValue);
}
}The automation properties are not read by screen readers (Windows Narrator).
#.##0,00;-#.##0,00;;@ does not work in RadSpreadsheet. It should suppress visualizing of ) values. Workaround: #.##0,00;-#.##0,00; ;@ works fine (there is ' ' [space] set for the zero values).