Missing localization strings in PageSetup dialog.
Go to the headers and footers section. The localization is missing.
Dear Telerik Development Team,
First of all, I want to thank you for your great work on the RadTileView control for WPF. I appreciate the effort and attention to detail that you have invested in this component.
In my projects, RadTileView has brought significant value thanks to its visual appearance, the smooth animation when maximizing or restoring tiles, and the ability to provide distinct content for minimized and maximized states. It truly enhances the user experience, and I find the dynamic layout engaging and modern.
However, I have faced some challenges related to tile reordering and positioning:
The drag & drop rearrangement mechanism sometimes behaves in unpredictable or unintuitive ways, especially when there are many tiles or when tiles have different sizes.
There is currently no straightforward way to specify the exact row and column position of each tile when dynamically adding them from code.
It would be extremely useful to have a way to control or "lock" a tile to a specific grid position, for example by exposing explicit row and column properties for each tile, or by allowing developers to define the exact layout coordinates when adding tiles dynamically. This feature would make it possible to programmatically manage tile placement in complex dashboards, rather than relying only on the automatic layout and drag & drop interactions.
Such functionality would be highly beneficial in many scenarios, especially for enterprise dashboards where the layout must follow strict business requirements and should not be left to chance or automatic algorithms.
Would it be possible to consider this kind of feature for a future release?
If there is a known workaround or recommended approach to achieve precise tile positioning with the current RadTileView, I would greatly appreciate your guidance.
Thank you again for your work and support.
Looking forward to your reply!
Best regards,
The cell highlighting doesn't work if the ItemsSourceProvider.ItemsSource is set at runtime, while the drop down is open. The filtering of the items works, but the cell content is not colored.
To work this around, make sure to set the ItemsSource before the drop down gets opened.
In your demo select PivotGrid - Olap Support
1. add "Exchange Rates: Average Rate" to values
2. sort rows by "Reseller Order Quantity"
-> The grid will be empty
If the list is filtered by "Total Reseller Order Quantity != 0", results will show again. Thus, sorting by a column which contains rows without values seems to be faulty.
The RadExpander element gets underlined in the Visual Studio designer and you can see a NullReferenceException when mouse over the element. The issue occurs only when data bind the IsExpanded property of RadExpander.
There are no issues at runtime. Also, in the common scenario the designer doesn't break. In case the error breaks the designer, you can set the IsExpanded bindining in the code-behind, instead of XAML.
public MainWindow()
{
InitializeComponent();
this.radExpander.SetBinding(RadExpander.IsExpandedProperty, new Binding("IsExpanded"));
}
When using an INotifyCollectionChanged (like ObservableCollection<T>), RadDocking subscribes to its CollectionChanged event. This happens on PropertyChanged of the PaneSource property.
It seems that WPF re-intializes the application when you connect to a running remote desktop session or switch the user to a session where the corresponding WPF app is already opened. This triggers the PropertyChanged event again, which subscribes to the PaneSource collection again.
If you connect to the session multiple times, the CollectionChanged handler will be attached multiple times leading to a memory leak.
To work this around, you can manually unsubscribe from the CollectionChanged event when multiple handlers are added.
public class CustomDocking : RadDocking
{
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
if (e.Property.Name == nameof(PanesSource) && PanesSource is INotifyCollectionChanged observableCollection)
{
UnsubscribeCollectionChanged(observableCollection, this);
}
}
public static void UnsubscribeCollectionChanged(INotifyCollectionChanged collection, object dockingInstance)
{
var handlerMethod = typeof(RadDocking).GetMethod("OnPanesSourceCollectionChanged", BindingFlags.NonPublic | BindingFlags.Instance);
var handlerDelegate = Delegate.CreateDelegate(typeof(NotifyCollectionChangedEventHandler), dockingInstance, handlerMethod);
var field = collection.GetType().GetField("CollectionChanged", BindingFlags.Instance | BindingFlags.NonPublic);
var eventDelegate = (MulticastDelegate)field.GetValue(collection);
var handlers = eventDelegate?.GetInvocationList().Where(d => d.Method == handlerMethod);
bool shouldRemoveHandler = handlers.Count() > 1;
if (shouldRemoveHandler)
{
typeof(INotifyCollectionChanged)
.GetEvent("CollectionChanged")
?.RemoveMethod
?.Invoke(collection, new object[] { handlerDelegate });
}
}
}
In OS two monitors are configured: monitor 1 (3840x2160) scale: 200% and monitor 2 (1920x1200) scale 100%.
Our wpf application has a main window, maximized on screen 1 and a child window maximized on screen 2.
In the app.manifest we use per monitor dpi awareness:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True/PM</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2,PerMonitor</dpiAwareness>
</windowsSettings>
</application>
Both windows have a RadDocking instance with a docked RadPane like:
<Grid>
<telerikDocking:RadDocking Name="Docking"
HasDocumentHost="True"
telerik:DragDropGroup.Name="VDDragDropGroup">
<telerikDocking:RadDocking.DocumentHost>
...
</telerikDocking:RadDocking.DocumentHost>
<telerik:RadSplitContainer InitialPosition="DockedBottom">
<telerik:RadPaneGroup>
<telerik:RadPane Header="Test Panel" IsDockable="True">
<Border Background="Green">
<TextBlock Text="Test Panel" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</telerik:RadPane>
</telerik:RadPaneGroup>
</telerik:RadSplitContainer>
</telerikDocking:RadDocking>
</Grid>
If you drag and move the docked panel from screen 2 to screen 1 the compass at screen 1 is only shown if the mouse position is in the first quadrant of screen 1 . The compass is shown on the correct place but cannot be activated, so that no dropping is possible.
Without unsing per monitor dpi awareness everything works fine. Unfortunately we must use per monitor dpi awareness for our application.
This bug is also reproducable in V2023.3.1218.
Windows 11
VS 2022
UI for WPF (2024 Q4)
.NET 8
Binaries.NoXaml\WPF80\Telerik.Windows.Controls.RichTextBox.dll (2024.4.1213.80)
I can create a docx file with Word that results in a null reference exception at
Name | Value | Type | |
---|---|---|---|
StackTrace | " at Telerik.Windows.Documents.Layout.ParagraphLayoutBox.ArrangeOverride(SizeF finalSize) in Telerik.Windows.Documents.Layout\\ParagraphLayoutBox.cs:line 1174" | string |
Since this exception is in a threadpool that is doing layout, the exception cannot be caught and is not recoverable.
It is easy to reproduce (see attached file). First create a Word doc with a large image that is anchored. Then add a bookmark. Removing either the bookmark or the "square" text wrapping removes the exception.
The code to load the document and display it is very simple:
private string? LoadDocx(
string path)
{
string? msg = null;
try
{
using var instream = File.OpenRead(path);
var openXmlRadDocProvider =
new Telerik.Windows.Documents.FormatProviders.OpenXml.Docx.DocxFormatProvider();
var raddoc = openXmlRadDocProvider.Import(instream);
RadRtb.Document = raddoc;
}
catch (Exception ex)
{
msg = ex.Message;
}
return msg;
}
"RadRtb" is a "RadRichTextBox". This method returns fine. The exception happens later in a non-UI threadpool thread.
While I don't expect the component to correctly render EVERY Word document, I do expect it to not exception on a valid document. There must be a better way to handle this.