Completed
Last Updated: 04 Oct 2019 10:28 by ADMIN
Release LIB 2019.3.1007
The CustomElementLoading event can't be canceled without creating a new instance of the custom element.

As a workaround in the CustomElementLoading event handler you can call the SetAffectedElement() with creating DependencyObject and then Cancel the event by setting the Cancel property.
private void RadDockingOnCustomElementLoading(object sender, LayoutSerializationCustomLoadingEventArgs e)
{
    if (e.CustomElementTypeName == "MyRadPane")
    {
        e.SetAffectedElement(new DependencyObject());
        e.Cancel = true;              
    }
}
Approved
Last Updated: 07 Jun 2019 10:52 by ADMIN

Description:

When using a display with scaling setting to more than 100%, floating pane docking does not work as intended. When dragging a pane out of a PaneGroup, and without releasing it, you drop it on top of another tab (so it is inserted into that position in the PaneGroup), nothing happens (window stays floating in that position). If you drag the already floating window on top of the same tab, then the default behavior happens and the pane is docked into the group. This behavior is reproducible on the Telerik UI for WPF Demo app.

See attached video for reproduction case in Demo app.

 

Technical Details:

For the failing scenario DragDelta on the ToolWindow is being triggered with wrongly scaled mouse position. On second drag drop operation, DragDelta receives properly scaled mouse position.

Failure case mouse positions:

DRAG START {864,128.8}
DRAG DELTA {871.2,142.4}
...
DRAG DELTA {864.8,114.4}
DRAG END {1081,143}

Second case mouse positions:

DRAG START {862.4,116}
DRAG DELTA {873.6,160.8}
...
DRAG DELTA {860.8,112}
DRAG END {860.8,112}
Completed
Last Updated: 03 Jun 2019 06:26 by ADMIN
Release LIB 2019.2.603 (06/03/2019)
When the IsHidden property of a RadPane within a ToolWindow is set to True and then to false in quick succession, the ToolWindow is not shown. 

As a workaround, you can disable the animation of the ToolWindow:
<Style TargetType="telerik:ToolWindow">
<Setter Property="telerik:AnimationManager.IsAnimationEnabled" Value="False" />
</Style>

The above style need to be placed in the resources of the App.xaml in order to take effect on the ToolWindows, since they are displayed in a separated visual tree.
In Development
Last Updated: 08 Oct 2019 14:06 by ADMIN

Hello Support,

we are using the RadDocking.LayoutChangeEnded event to store the docking layout (via RadDocking.SaveLayout) after the user has changed it.

When animations are enabled (default) everything works as expected and all groups, split containers, and panes are included when in the XML written by RadDocking.SaveLayout.

However, when disabling animations (either using AnimationManager.IsGlobalAnimationEnabled or custom styles for RadWindow and/or ToolWindow setting AnimationManager.IsAnimationEnabled to false) the RadDocking.LayoutChangeEnded event is raised too early.

The faulty behavior can be reproduced with the attached demo application as follows:

1. start the application (App.xaml includes a style for ToolWindow with animations disabled)

2. drag the pane "Solution Explorer" out of the application to create a new tool window

3. drag the "Solution Explorer" tool window onto the "Properties" pane's compass and drop it below "Properties", so that "Properties" and "Solution Explorer" are both pinned right in the application above each other

4. when inspecting the layout written to the "Output" pane you will find that the entry for the RadPane "Solution Explorer" is missing

Any additional change to the docking layout (like resizing a pane) will update the layout and show all panes again.

When enabling animations in the ToolWindow style the above steps will result in the complete layout being written to the "Output" pane.

Please let me know should you require further information for reproduction of this bug.

Best regards,

Oliver

Completed
Last Updated: 19 Apr 2019 14:05 by ADMIN
Release LIB 2019.1.422 (04/22/2019)
The exception is reproduced when multiple toolwindows with nested owners are floated and they are reloaded by re-merging the dictionaries in App.xaml in a NoXaml scenario.
Approved
Last Updated: 09 Apr 2019 07:07 by ADMIN
This issue is replicable in a setup which has two monitors and wit different DPI.
If a docking window is resized to a width over both monitors, when the window is more than a half on the monitor with lower DPI, it is not possible to dock it.
Approved
Last Updated: 21 Mar 2019 13:19 by ADMIN
Declined
Last Updated: 22 Mar 2019 12:48 by ADMIN
Created by: Marco
Comments: 2
Category: Docking
Type: Feature Request
1

Having Problems with unreadable Tabs in RadPaneGroup: TabsSqueeze.png

I think I found a Solution with OverflowMode and ScrollViewer:

<telerik:RadPaneGroup x:Name="DocumentGroup" ScrollViewer.HorizontalScrollBarVisibility="Auto" OverflowMode="Scroll">

Problem:

After Loading Layout the OverflowMode is not respected anymore.

I found this ticket in Silverlight, what discribes the Problem and is approved: Docking: I would like OverflowMode to work for all RadPaneGroup in xaml/codebehind and this be persisted through SaveLayout/LoadLayout

And i found this documentation, which say, using OverflowMode can lead to unexpected behaviors:
https://docs.telerik.com/devtools/wpf/controls/raddocking/general-information/not-supported-properties

so i report this as a feature instead of a bug.

Please sea atteched an example project: TabWrapProblem.zip
Usage: Save and than Load the Layout -> Scrolling of tabs break

Approved
Last Updated: 07 Feb 2019 15:40 by ADMIN
Created by: Martin Ivanov
Comments: 0
Category: Docking
Type: Bug Report
1
A memory leak related to the automation peers of the RadPane and RadPaneGroup appears when you close a pane (using its Close button) even if you call its RemoveFromParent() method.

To work this around disable the automation peers. To do so please set the static AutomationManager.AutomationMode property toAutomationMode.Disabled.
public MainWindow()
{
    AutomationManager.AutomationMode = AutomationMode.Disabled;
    InitializeComponent();
}

The issue originates from ItemsControlAutomationPeer. It is reported to Microsoft in their old connect portal here =>

https://connect.microsoft.com/VisualStudio/feedback/details/838165/memory-leak-in-the-itemscontrolautomationpeer-because-items-removed-from-the-itemscollection-are-still-strongly-held-by-the-weakrefelementproxystorage
Completed
Last Updated: 08 Feb 2019 12:40 by ADMIN
When the RadDocking Items are reordered during runtime and new RadSplitContainers/RadPaneGroups are generated, the save/load behavior is sometimes incorrect. 
Completed
Last Updated: 19 Apr 2019 12:58 by ADMIN
Release LIB 2019.1.422 (04/22/2019)

Dynamically adding RadPane to PaneGroup, the header of the pane does not appear on the second added pane.

To workaround this the OnApplyTemplate() method can be called after the RadPane is added to the RadPaneGroup.

Declined
Last Updated: 25 Jan 2019 17:33 by ADMIN

After upgrading to Telerik WPF 2019.1.116 from 2018.3.1010 we receive a lot of:

System.ComponentModel.Win32Exception (0x80004005): Invalid window handle
   MS.Win32.UnsafeNativeMethods.GetWindowText(HandleRef hWnd, StringBuilder lpString, Int32 nMaxCount)

Exceptions. It makes out application very slow.

In version 2018 everyting was OK. See attached scerenshots.

Approved
Last Updated: 28 Dec 2018 08:39 by ADMIN
The RadDocking control template hosts several AutoHideArea elements, one for each auto-hide placement - left, top, right, bottom. When you unpin a RadPane, it goes into one of those areas. The active auto-hide area where the pane will go is determined by the State of the topmost RadSplitContainer.

Allow manually setting the auto-hide area where the RadPane will go when unpinned.
Approved
Last Updated: 21 Nov 2018 16:55 by ADMIN
The RadPaneGroup inherits RadTabControl and the TabStripPlacement property. Currently the RadPaneGroup does not support setting this property as the corresponding ControlTemplates are not implemented.
Approved
Last Updated: 18 Sep 2018 09:38 by ADMIN
A possible workaround has been demonstrated in the attached project.
Approved
Last Updated: 29 Jul 2019 09:42 by ADMIN
The compass elements are not on the proper places when the docking is on the second monitor. To reproduce this the DPI of the monitors should be different for example 125% (main) and 150% (secondary). Also, to reproduce this you will need to enable the DPI awareness of the application by setting the dpiAware and dpiAwareness settings in the app.manifest file.
Completed
Last Updated: 24 Aug 2018 12:02 by ADMIN
ADMIN
Created by: Vladimir Stoyanov
Comments: 1
Category: Docking
Type: Bug Report
1

			
Completed
Last Updated: 11 Dec 2018 15:35 by ADMIN
The close button in the document host is not higlighted (hovered-button-state-doc-host.png) as opposed to panes outside the DocumentHost area (hovered-button-state.png).

The workaround is to update the MouseOver visual state of the RadButtonDocumentCloseControlTemplate:

             <ControlTemplate x:Key="RadButtonDocumentCloseControlTemplate" TargetType="telerik:RadButton">
                <Grid x:Name="LayoutRoot" Background="Transparent" Width="18" Height="18">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Disabled">
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0" To="0.3" Storyboard.TargetName="PathVisual" Storyboard.TargetProperty="Opacity"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Normal"/>
                            <VisualState x:Name="MouseOver">
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0" To="1" Storyboard.TargetName="MouseOverVisual" Storyboard.TargetProperty="Opacity"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Pressed"/>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Border x:Name="MouseOverVisual" Background="{telerik:Office2013Resource ResourceKey=EffectHighBrush}" Opacity="0"/>
                    <Path x:Name="PathVisual"
                    Width="8"
                    Height="8"
                    Data="M2.5,0 L4.5,0 4.5,2.5 7,2.5 7,4.5 4.5,4.5 4.5,7 2.5,7 2.5,4.5 0,4.5 0,2.5 2.5,2.5 z"
                    Stretch="Fill"
                    Fill="{TemplateBinding Background}"
                    RenderTransformOrigin="0.5,0.5"
                    SnapsToDevicePixels="True">
                        <Path.RenderTransform>
                            <RotateTransform Angle="-135"/>
                        </Path.RenderTransform>
                    </Path>
                </Grid>
            </ControlTemplate>
            <Style x:Key="CustomRadButtonDocumentCloseStyle" BasedOn="{StaticResource RadButtonDocumentCloseStyle}" TargetType="telerik:RadButton">
                <Setter Property="Template" Value="{StaticResource RadButtonDocumentCloseControlTemplate}"/>
            </Style>
            <ControlTemplate x:Key="RadPaneGroupDocumentHostControlTemplate" TargetType="telerik:RadPaneGroup">
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Disabled"/>
                            <VisualState x:Name="Normal"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="FocusStates">
                            <VisualState x:Name="Focused"/>
                            <VisualState x:Name="Unfocused"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="AutoCollapseStates">
                            <VisualState x:Name="SingleItem"/>
                            <VisualState x:Name="TwoOrMoreItems"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="PaneHeaderVisibilityStates">
                            <VisualState x:Name="PaneHeaderHidden"/>
                            <VisualState x:Name="PaneHeaderVisible"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="ResizerStates">
                            <VisualState x:Name="ResizerLeft">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="Visibility" Duration="0">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="(Grid.RowSpan)" Duration="0">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <sys:Int32>3</sys:Int32>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="Placement" Duration="0">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Dock>Left</Dock>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation BeginTime="00:00:00" From="4" To="4" Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="MinWidth"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="ResizerTop">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="Visibility" Duration="0">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="(Grid.ColumnSpan)" Duration="0">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <sys:Int32>2</sys:Int32>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="Placement" Duration="0">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Dock>Top</Dock>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                    <DoubleAnimation BeginTime="00:00:00" From="4" To="4" Storyboard.TargetName="DockResizer" Storyboard.TargetProperty="MinHeight"/>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="HideResizer"/>
                        </VisualStateGroup>
                        <VisualStateGroup x:Name="DropDownDisplayStates">
                            <VisualState x:Name="DropDownButtonCollapsed"/>
                            <VisualState x:Name="DropDownButtonVisible">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="DropDownButtonElement" Storyboard.TargetProperty="Visibility">
                                        <DiscreteObjectKeyFrame KeyTime="0">
                                            <DiscreteObjectKeyFrame.Value>
                                                <Visibility>Visible</Visibility>
                                            </DiscreteObjectKeyFrame.Value>
                                        </DiscreteObjectKeyFrame>
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <dock:RadGridResizer x:Name="DockResizer" Placement="Left" ShowsPreview="True" Visibility="Collapsed"/>
                    <Grid x:Name="ItemsContainer" Grid.Row="1" Grid.Column="1">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <RepeatButton x:Name="LeftScrollButtonElement" Visibility="{Binding ComputedHorizontalScrollBarVisibility, ElementName=ScrollViewerElement}" Style="{StaticResource RepeatButtonScrollLeftStyle}"/>
                        <ScrollViewer x:Name="ScrollViewerElement" Grid.Column="1" HorizontalScrollBarVisibility="{Binding (ScrollViewer.HorizontalScrollBarVisibility), RelativeSource={RelativeSource TemplatedParent}}">
                            <ScrollViewer.Template>
                                <ControlTemplate TargetType="ScrollViewer">
                                    <ScrollContentPresenter x:Name="ScrollContentPresenter"/>
                                </ControlTemplate>
                            </ScrollViewer.Template>
                            <ItemsPresenter x:Name="ItemsPresenterElement"/>
                        </ScrollViewer>
                        <RepeatButton x:Name="RightScrollButtonElement"
                        Grid.Column="2"
                        Visibility="{Binding ComputedHorizontalScrollBarVisibility, ElementName=ScrollViewerElement}"
                        Style="{StaticResource RepeatButtonScrollRightStyle}"/>
                        <telerik:RadDropDownButton x:Name="DropDownButtonElement"
                        Grid.Column="3"
                        Visibility="Collapsed"
                        IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
                        DropDownPlacement="Bottom"
                        DropDownButtonPosition="Left"
                        Style="{StaticResource DropDownButtonDocumentDropDownStyle}"
                        Focusable="False">
                            <telerik:RadDropDownButton.DropDownContent>
                                <telerikTabControl:DropDownMenu x:Name="DropDownMenuElement"
                                StaysOpen="False"
                                IconColumnWidth="0"
                                Placement="Bottom"
                                ItemTemplate="{TemplateBinding ItemDropDownContentTemplate}"
                                ItemTemplateSelector="{TemplateBinding ItemDropDownContentTemplateSelector}"
                                DisplayMemberPath="{TemplateBinding DropDownDisplayMemberPath}"/>
                            </telerik:RadDropDownButton.DropDownContent>
                        </telerik:RadDropDownButton>
                        <telerik:RadButton x:Name="CloseButton"
                        Grid.Column="4"
                        Command="telerik:RadDockingCommands.Close"
                        Style="{StaticResource CustomRadButtonDocumentCloseStyle}"
                        Visibility="{Binding IsEnabled, RelativeSource={RelativeSource Self}, Converter={StaticResource BooleanToVisibilityConverter}}"/>
                    </Grid>
                    <Grid Grid.Row="2" Grid.Column="1" Background="{TemplateBinding Background}" Margin="0 -1 0 0">
                        <Rectangle StrokeThickness="1" Stroke="{telerik:Office2013Resource ResourceKey=HighDarkBrush}"/>
                        <Rectangle Stroke="{telerik:Office2013Resource ResourceKey=AccentBrush}" StrokeThickness="1" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedPane.IsActive, Converter={StaticResource BooleanToVisibilityConverter}}"/>
                        <Rectangle Margin="1" StrokeThickness="3" Stroke="{telerik:Office2013Resource ResourceKey=AccentBrush}" Opacity="0.3"/>
                        <Grid Margin="5">
                            <ContentPresenter x:Name="ContentElement"
                            Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsContentPreserved, Converter={StaticResource InvertedBooleanToVisibilityConverter}}"
                            ContentTemplate="{TemplateBinding SelectedContentTemplate}"
                            ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}"/>
                            <Grid x:Name="ContentElementsPanel" Visibility="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsContentPreserved, Converter={StaticResource BooleanToVisibilityConverter}}"/>
                        </Grid>
                    </Grid>
                </Grid>
            </ControlTemplate>
            <Style BasedOn="{StaticResource RadPaneGroupStyle}" TargetType="telerik:RadPaneGroup">
                <Setter Property="DocumentHostTemplate" Value="{StaticResource RadPaneGroupDocumentHostControlTemplate}"/>
            </Style>



The fix for this issue will be available in the next LIB version (2018.3.1022) expected on Monday, October 22.
1 2 3 4 5 6