Currently, the RadFileDialogs components show folder shortcuts, however, they are not fully supported. More specifically, interacting with them, such as mouse-double click, does not navigate to the respective folder.
In the meantime, this behavior can be achieved by subscribing to the Loaded event of the used file dialog type, in order to retrieve and cache the ExplorerControl in a field or a property. Then, you could subscribe to the PreviewMouseDoubleClick event of the used file dialog type and check whether the DataContext of the e.OriginalSource property is of the type of FileInfoWrapper. If it is and its IsShortcut property is true, set the CurrentDirectoryPath property of the cached ExplorerControl to the ShortcutLocation property of the FileInfoWrapper object.
The following code snippets showcase this approach when using the RadSaveFileDialog type:
//Caching the ExplorerControl instance
private ExplorerControl explorerControl;
//Retrieving the ExplorerControl instance
private void SaveFileDialog_Loaded(object sender, RoutedEventArgs e)
{
RadSaveFileDialog radSaveFileDialog = (RadSaveFileDialog)sender;
ExplorerControl explorerControl = radSaveFileDialog.ChildrenOfType<ExplorerControl>().FirstOrDefault();
if (explorerControl != null)
{
this.explorerControl = explorerControl;
}
}
//Navigation logic on double click of a shortcut
private void SaveFileDialog_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
FrameworkElement frameworkElement = e.OriginalSource as FrameworkElement;
if (frameworkElement != null)
{
FileInfoWrapper fileInfoWrapper = frameworkElement.DataContext as FileInfoWrapper;
if (fileInfoWrapper != null)
{
if (fileInfoWrapper.IsShortcut)
{
RadSaveFileDialog radSaveFileDialog = (RadSaveFileDialog)sender;
this.explorerControl.CurrentDirectoryPath = fileInfoWrapper.ShortcutLocation;
e.Handled = true;
}
}
}
}
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 };
Hello Support,
In the daily and weekly view from the ScheduleVies, the last appointments of daily appointments that span several days are not displayed.
Our customers often have daily appointments that span several days. When they switch to the daily or weekly view, the last day of these appointments is missing. We are now receiving daily complaints that the daily and weekly views are unusable. Please fix this bug as soon as possible. This error did not exist in the old Telerik library, but unfortunately we cannot reinstall the old library.
Thank you for your efforts.
Greetings marco
NullReferenceException thrown on opening the CompletionListWindow when RadSyntaxEditor is hosted in a non-WPF application (usually WinForms) and there are no WPF Application and MainWindow initialized.
This can happen if the RadSyntaxEditor for WPF is hosted in a WinForms application. In this scenario the System.Windows.Application.Current and its MainWindow are not initialized, which is what the IntelliPrompt positioning logic relies on.
Exception details:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
> Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPosition(System.Windows.Point pointInScreen) Line 452 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPosition(System.Windows.Point pointInEditorPresenter, System.Windows.Point pointAboveTheCaret) Line 442 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPositionInView() Line 480 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.InitializeIntellisense() Line 401 C# Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.Show(Telerik.Windows.Controls.SyntaxEditor.UI.CaretPosition caretStartPosition, Telerik.Windows.Controls.SyntaxEditor.UI.CaretPosition caretEndPositions) Line 211 C#
Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.Show() Line 182 C#
To work this around, you can initialize a new WPF application and MainWindow and create a hidden HwndSource for the MainWindow. This should happen before showing the WPF content in the WinForms application's code.
public Form1()
{
InitializeComponent();
new System.Windows.Application();
System.Windows.Application.Current.MainWindow = new System.Windows.Window();
var parameters = new HwndSourceParameters("HiddenHost")
{
Width = 1, Height = 1,
WindowStyle = unchecked((int)0x80000000) // WS_POPUP | WS_EX_NOACTIVATE
};
var hwndSource = new HwndSource(parameters);
hwndSource.RootVisual = System.Windows.Application.Current.MainWindow;
// other code here
ElementHost host = new ElementHost { Dock = DockStyle.Fill };
host.Child = wpfControl
this.Controls.Add(host);
}
Document exported to DOCX with 2025 Q2 cannot be opened by 2025 Q1 or previous versions.
Workaround: Use document processing to fix the document.
var processing_provider = new Telerik.Windows.Documents.Flow.FormatProviders.Docx.DocxFormatProvider();
var document = processing_provider.Import(File.ReadAllBytes("C:\\Users\\test\\Downloads\\word1.docx"),null);
var bytes_ = processing_provider.Export(document, null);
var rtb_provider = new Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider();
var doc = rtb_provider.Import(bytes_);
radRichTextBox.Document = doc;
Pressing the Enter key when a field editor is focused will scroll the vertical scrollbar to the topmost offset. This is reproducible when the properties are grouped. Also, the RenderMode should be set to Flat.
To work this around, change the RenderMode setting to Hierarchical right before the Enter key logic is executed and then return it back to Flat after some time.
private void RadPropertyGrid_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
var propertyGrid = (RadPropertyGrid)sender;
var currentMode = propertyGrid1.RenderMode;
propertyGrid.RenderMode = RenderMode.Hierarchical;
Dispatcher.BeginInvoke(new Action(() =>
{
propertyGrid.RenderMode = currentMode;
}));
}
Hi Team,
I have set up SSO and it's great so far. I have a feature request that would make it even better, and solve many large enterprise needs, is to have a way to integrate SCIM based license provisioning as well.
Right now, you still do need to manage licensed users on the Manage Licensed Users portal. A License Holder or License Manager needs to add a Developer to the account and assign them a license.
With SCIM integration, we could better manage the users and licensing on a larger scale, with automation and oversight on the enterprise-managed SSO identity.
Thank you,
Kevin
I do have some feedback on this component. I love it, but of course there are some areas where improvement can be made. For instance, in the screenshot below, I have highlighted some words where improvement can be made.