Hello Support,
I have some hidden panes (see attachement). The Problem is that when I try to reorder and save the layout and reload it, the panes are not ordered as wished.
I there a way to provide it?
Best regards,
Frédéric Le Blay.
The RadOutlookBar control takes a significant amount of time to load initially when it does not have a fixed width and its IsMinimized property is explicitly set to True.
A possible workaround, for the time being, is to set a fixed Width for the control and change its value in the Minimized and Restored events.
The DataContext of RadPane's content is lost when showing its preview in the DockingNavigator.
As a workaround, you could set the DataContext of the content element could be set explicitly.
When a RadSplitContainer with Orientation="Vertical" contains RadPaneGroup instances, resizing them causes a flicker when the ShowResizePreview property is set to False. This happens with the VisualStudio2019 theme.
For the time being, a possible workaround is to create a global Style with TargetType="RadPaneGroup" and set the Margin property to "0":
<Style TargetType="telerik:RadPaneGroup" BasedOn="{StaticResource RadPaneGroupStyle}">
<Setter Property="Margin" Value="0"/>
</Style>
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 });
}
}
}
When Saving and Loading a layout which has empty DocumentHost an ArgumentOutOfRangeException is thrown
Removing item from the PanesSource collection causes NullReferenceException