Unplanned
Last Updated: 07 May 2025 15:15 by Valentin
When displaying PDF-Files using PDFViewer, ContentElementsCanvas .RenderAsync uses reflection (DispatcherObjectUtils.ApplyDispatcher) to render Visuals on multiple threads.
However this leads to a memory leak since the dispatchers cant be GC'ed, see screenshot below.




The Screenshot is from the actual application we expirienced this issue with, the attached reproduction example is a boiled down version of what your code does.
If you wanna reproduce this on your own, create an application that uses PdfViewer that switches between many pdf files. The ammount of Dispatchers will grow steadily, probably to a total of the number of threads used by Task.Factory.

Unplanned
Last Updated: 07 May 2025 14:54 by Martin Ivanov

A memory leak in RadPdfViewer when the control gets removed from the visual tree.

To work this around, use the reflection API to access the leaking VisualTarget objects and call their Dispose method manually.

var pdfViewer = hostBorder.Child as RadPdfViewer;

if (pdfViewer != null)
{
    var canvas = viewer.ChildrenOfType<Canvas>().FirstOrDefault(x => x.GetType().Name.Contains("ContentElementsCanvas"));                
    var visualTargetsDictionaryField = canvas.GetType().GetField("pageNumberToVisualTarget", BindingFlags.NonPublic | BindingFlags.Instance);
    var visualTargetsDictionary = (Dictionary<int, List<VisualTarget>>)visualTargetsDictionaryField.GetValue(canvas);
    foreach (KeyValuePair<int, List<VisualTarget>> target in visualTargetsDictionary)
    {
        for (int i = 0; i < target.Value.Count; i++)
        {
            VisualTarget item = target.Value[i];
            item.RootVisual = null;
            item.Dispose();
        }
    }  
}
hostBorder.Child = null;
hostBorder.Child = new RadPdfViewer() { Document = newDocument };

Unplanned
Last Updated: 07 May 2025 09:02 by Stenly

The CustomFilterDialogContent element's OK and Cancel buttons are different in size for the Windows 11 theme.

To work this around, you can subscribe to the Loaded event of the CustomFilterDialogContent element and retrieve the RadButton with x:Name="PART_ButtonCancel" via the ChildrenOfType extension method. On the retrieved button, set the VerticalAlignment property to Center.

The following code snippet showcases this suggestion's implementation:

static MainWindow()
{
    EventManager.RegisterClassHandler(typeof(CustomFilterDialogContent), LoadedEvent, new RoutedEventHandler(OnCustomFilterDialogContentLoaded));
}

private static void OnCustomFilterDialogContentLoaded(object sender, RoutedEventArgs e)
{
    RadButton cancelButton = ((CustomFilterDialogContent)sender).ChildrenOfType<RadButton>().FirstOrDefault(x => x.Name == "PART_ButtonCancel");

    if (cancelButton != null)
    {
        cancelButton.VerticalAlignment = VerticalAlignment.Center;
    }
}

In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)
When the DropDownPlacement property of the RadDropDownButton element is set to Top and the Windows 11 theme is used, a Setter in the default ControlTemplate tries to set the VerticalOffset of the drop-down Popup element. This is done via a converter (of the type of MultiplyValueConverter), to which a "-1" is passed as a ConverterParameter. In the Convert method of the converter, the native System.Convert.ToDouble method tries to convert the ConverterParameter to the type of double. Internally, the Convert.ToDouble method uses the current culture when converting a string to a double.

This is observed when using a different culture, for example, "ar-EG".
In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)

NullReferenceException occurs when the the automation peers creation for the rows goes over 10,000 peers (the MaxCachedPeersSize setting of the GridViewDataControlAutomationPeer). The exception occurs only when the 'record' modifier is used in the class definition. For example:

public record class MyClass(int Id)
{
}

The exception stacktrace is:

System.NullReferenceException: 'Object reference not set to an instance of an object.'
peer was null.
Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewDataControlAutomationPeer.ClearPeer(Telerik.Windows.Automation.Peers.DataItemAutomationPeer peer)   Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewDataControlAutomationPeer.GetOrCreateItemPeer(object item, int index) Line 288 C#  Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewRowAutomationPeer.FindDataItemAutomationPeer(System.Collections.Generic.List<System.Windows.Automation.Peers.AutomationPeer> childPeers) Telerik.Windows.Controls.GridView.dll!Telerik.Windows.Automation.Peers.GridViewRowAutomationPeer.GetChildrenCore() 

.

To work this around use the "class" modifier instead of "record". For example, instead of:

public record class MyClass(int Id)
{
}

Use:

public class MyClass
{
    public int Id { get; set; } 
}

 Or alternatively, increase the MaxCachedPeersSize value.

 

In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)
When using the Xaml version of our assemblies and the Material theme is set through the StyleManager, the glyph on the close button of each SearchAutoCompleteBoxItem element is not visible.
In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)
The CSharpTagger matches the following character combination as a multiline comment start - / * (slash and a start with a whitespace between). This causes wrong tags creation in scenarios where the * character is a part of a single line comment. The correct comment start and end should be /* and */.

In the following example, the beginning of the first single line comment is considered a multiline comment start, but since nothing closes it, the entire text is tagged and colored as a comment.

// ***********************************************************************
// some other content here
// some other content here
// ***********************************************************************

public class TestClass
{
}

In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)
ADMIN
Created by: Tanya
Comments: 0
Category: Spreadsheet
Type: Bug Report
14
Check how the performance can be improved in this scenario. The StyleGallery is taking much time to load, the GetUsedCellRange method is called multiple times.
In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)

Currently, the DataFormatString property of the columns is applied only to the top-level rows and not to the child ones.

To work this around, create a new DataTemplate for the CellTemplate property of the column and set the StringFormat property of the Binding instance for the element that will be used to display the cell's value in view mode.

<telerik:GridViewDataColumn.CellTemplate>
    <DataTemplate>
        <TextBlock Text="{Binding MyPropertyValue, StringFormat=N2}"/>
    </DataTemplate>
</telerik:GridViewDataColumn.CellTemplate>

 

In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)
Created by: Stenly
Comments: 2
Category: Map
Type: Feature Request
1
Add language property support for AzureMapProvider

Workaround:
Create a custom provider with a custom source, and on the GetTile method of the custom source, you can override the query to contain the language parameter.
In Development
Last Updated: 02 May 2025 10:25 by ADMIN
Scheduled for 2025 Q2 (May)
The image rendering of the signed document with indexed color space is incorrect when importing it.
Declined
Last Updated: 29 Apr 2025 06:52 by ADMIN

Type in Japanese text in RichTextBox that word wraps beyond the first line and export it to PDF. The text should always be left aligned (as visually shown when typing) but has an "indent" when exported when the font is Segoe UI.

Image

Declined
Last Updated: 29 Apr 2025 06:40 by ADMIN

When adding a button cell as below, if the button cell is selected the button doesn't work when tapping it.

<telerik:GridViewDataColumn Header="Config"
                            DataMemberBinding="{Binding .}" IsReadOnly="True">
    <telerik:GridViewDataColumn.CellTemplate>
        <DataTemplate>
            <!-- Adding telerik:TouchManager.TouchMode="None" solves the issue -->
            <telerik:RadButton HorizontalAlignment="Center" Style="{StaticResource MyButtonStyle}"
                               Margin="2" Padding="1" Width="Auto" Height="Auto"
                               Command="{Binding DataContext.ShowExtraConfigurationCommand, RelativeSource={RelativeSource AncestorType=Window}}"
                               CommandParameter="{Binding .}" ToolTip="Config">
                <telerik:RadGlyph Glyph="{StaticResource GlyphGear}"/>
            </telerik:RadButton>
        </DataTemplate>
    </telerik:GridViewDataColumn.CellTemplate>
</telerik:GridViewDataColumn>

As stated in the comment, adding the property below to the RadButton solves the issue.

telerik:TouchManager.TouchMode="None"

I have attached a sample project in which the error occurs, simply tap a button, close the MessageBox and tap the same button again. Thank you for your time!

Unplanned
Last Updated: 29 Apr 2025 06:39 by ADMIN

The current implementation of the Code128 symbology class used with RadBarcode throws an InvalidSymbolException for characters with codes greater than 127.

As you can see from this table, there are many special characters in Code128 that have larger codes:

https://en.wikipedia.org/wiki/Code_128#Bar_code_widths

It would be useful to have these in applications which need to modify a reader device's behavior with barcode control characters in order to communicate properly.

Completed
Last Updated: 29 Apr 2025 06:36 by ADMIN
Created by: Domas
Comments: 3
Category: UI for WPF
Type: Bug Report
0

** Fixed with Telerik.Licensing 1.4.16 **

The build performance with new license validation (2025) is very poor. 2025 version takes about 5 sec. extra time to build. For small projects it takes 10x longer.

Test environment:

  1. Default WPF project created from template.
  2. Only one change: Nuget Reference in .csproj
  3. .NET 8
  4. Visual Studio 17.13.

Build times depending on the Version of Telerik Nuget:

<PackageReference Include="Telerik.Windows.Controls.Navigation.for.Wpf" Version="2025.1.211" />

11:25:47:071    Build started at 11:25...
11:25:47:189    1>------ Build started: Project: TelerikBuildTest, Configuration: Debug Any CPU ------
11:25:51:748    1>[Telerik and Kendo UI Licensing]
11:25:51:748    1>      Telerik and Kendo UI License Key found at: C:\Users\...\AppData\Roaming\Telerik\telerik-license.txt (UserDirectory)
11:25:51:748    1>      License issued at 2025-03-16 to e**********@....
11:25:51:748    1>[Telerik and Kendo UI Licensing]
11:25:51:748    1>      Valid Telerik UI for WPF license found.
11:25:52:743    1>[Telerik and Kendo UI Licensing]
11:25:52:743    1>      Telerik and Kendo UI License Key found at: C:\Users\...\AppData\Roaming\Telerik\telerik-license.txt (UserDirectory)
11:25:52:743    1>      License issued at 2025-03-16 to e**********@...
11:25:52:743    1>[Telerik and Kendo UI Licensing]
11:25:52:743    1>      Valid Telerik UI for WPF license found.
11:25:52:815    1>TelerikBuildTest -> C:\Users\....\source\repos\TelerikBuildTest\TelerikBuildTest\bin\Debug\net8.0-windows\TelerikBuildTest.dll
11:25:52:828    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
11:25:52:828    ========== Build completed at 11:25 and took 05,892 seconds ==========

 

 

<PackageReference Include="Telerik.Windows.Controls.Navigation.for.Wpf" Version="2024.4.1213" />

11:26:33:405    Build started at 11:26...
11:26:33:581    1>------ Build started: Project: TelerikBuildTest, Configuration: Debug Any CPU ------
11:26:33:953    1>TelerikBuildTest -> C:\Users\...\source\repos\TelerikBuildTest\TelerikBuildTest\bin\Debug\net8.0-windows\TelerikBuildTest.dll
11:26:33:960    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
11:26:33:960    ========== Build completed at 11:26 and took 00,633 seconds ==========

Under Review
Last Updated: 29 Apr 2025 06:36 by ADMIN
Created by: Darren
Comments: 1
Category: UI for WPF
Type: Feature Request
1

Are there any plans to release a Visual Studio 2022 theme for WPF?  The Winforms UI has this theme, and I would like to have it for WPF as well.

Are there other themes on the roadmap that you could share?

 

Thanks!

--Darren

Unplanned
Last Updated: 28 Apr 2025 14:20 by Nikola
Created by: Nikola
Comments: 0
Category: UI for WPF
Type: Feature Request
0

Currently SvgImage does not support the following inner animation:

 

<svg xmlns="http://www.w3.org/2000/svg"
className="linesBox"
viewBox="0 0 4325 2626"
width="1200"
height="800"
        >
<path
d="m 2806,792.50001 -13.5,16.5 -33,10 -19.5,6.5 -17,15.5 -19,1 -9,16 -29.5,-4.70812 -34,18.70812 -37.5,16 -1.5,18 -20.5,8"
id="path60"
fill="none"
stroke="blue"
stroke-dasharray="20 10"
    stroke-dashoffset="0"
stroke-width="4">
<animate attributeName="stroke-dashoffset"
from="0" to="30"
dur="3s"
repeatCount="indefinite"/>
</path>

</svg>
Unplanned
Last Updated: 28 Apr 2025 14:18 by Nikola
Created by: Nikola
Comments: 0
Category: UI for WPF
Type: Feature Request
0
Currently only 'Rotate' is supported.
Add support for the rest : 'translate', 'scale', 'skewx', 'skewy'
Unplanned
Last Updated: 25 Apr 2025 13:12 by Stenly
Currently, when an item is selected and the RadWatermarkTextBox (search box) is focused, pressing the Back or Delete key will remove the selected item. This logic is encapsulated, and it cannot be altered. We could add an option to control this behavior.
Unplanned
Last Updated: 25 Apr 2025 05:11 by Alexander
GetPerMonitorDPIAwareScaleFactor throws an exception when the parameter visual is null and crashes the application.
1 2 3 4 5 6