Unplanned
Last Updated: 26 Dec 2022 11:08 by ADMIN
Currently, when you load a layout and the XML contains a lot of windows, even though they may not all be visible, I have to set the Visible property to false on the RadDock control to eliminate some funky refreshes are visible to the user (something we want to avoid). I also wanted to mention that using SuspendLayout/ResumeLayout instead of using Visible=false/true does not work.  Maybe this is something the development team can investigate at some point as well.
Unplanned
Last Updated: 21 Apr 2022 05:32 by ADMIN
Use cases:

1. You have a MainDocumentContainer with Document windows in it, placed in one under the other. Setting the DockState of the bottom DocumentWindow to Hidden, and restoring it afterwards, should place the DocumentWindow at the same place, instead of merging it with the above one

2. Same layout as above, when the layout is saved and then restored, the DocumentWindow positions should be exactly as they were
Unplanned
Last Updated: 08 Aug 2022 11:12 by Mark
The problematic tool window has a user control that is docked to fill and it is built entirely with Telerik controls. The dock control, tab strips, windows and even the controls inside the user control are correctly scaled. The issue comes when you start undocking and then docking the tool window. The size of the user control increases with each operation. The controls have anchors and although they have correct scaling they get stretched. This results in messed layout. 

The DocumentTabStrip and ToolTabStrip are created dynamically and when they initialize they call their Scale method. The tool window, the user control, and also all other controls added to it are created only once. When you undock the window a new tab strip is created and the existing controls are added to it. When we load the tab strip we call PerformRadAutoScale which calls the stip's Scale method. Calling Scale propagates to the child controls causing additional scaling to the Microsoft controls. RadControls don't have issues because we have logic to check the scaling of the window and we don't allow double scaling.

As a workaround, we can create custom tab strips and override the ScaleChildren property to return false.

this.radDock1.DockTabStripNeeded += this.RadDock1_DockTabStripNeeded;
private void RadDock1_DockTabStripNeeded(object sender, DockTabStripNeededEventArgs e)
{
    if (e.DockType == DockType.ToolWindow)
    {
        e.Strip = new MyToolTabStrip();
    }
    else
    {
        e.Strip = new MyDocumentTabStrip();
    }
}

public class MyToolTabStrip : ToolTabStrip
{
    protected override bool ScaleChildren => false;
}

public class MyDocumentTabStrip : DocumentTabStrip
{
    protected override bool ScaleChildren => false;
}

Unplanned
Last Updated: 24 Dec 2020 11:20 by ADMIN
ADMIN
Created by: Dimitar
Comments: 2
Category: Dock
Type: Bug Report
3
To reproduce: 
See attached video.

Workaround:
public Form1()
{
    RadDockEvents.TabStripItemCreating += RadDockEvents_TabStripItemCreating;
    InitializeComponent();
    radDock1.AutoHideAnimation = Telerik.WinControls.UI.Docking.AutoHideAnimateMode.None;

}
void RadDockEvents_TabStripItemCreating(object sender, TabStripItemCreatingEventArgs args)
{
    if (args.AutoHide)
    {
        var currentScale = args.TabItem.DpiScaleFactor;

        Screen showScreen = Screen.FromControl(this);
        SizeF scale = NativeMethods.GetMonitorDpi(showScreen, NativeMethods.DpiType.Effective);
        if (scale != currentScale)
        {
            var font = args.TabItem.Font;
            var newFont = new Font(font.Name, font.Size * scale.Width, font.Style);
            args.TabItem.Font = newFont;
        }
    }
}
protected override void OnClosed(EventArgs e)
{
    RadDockEvents.TabStripItemCreating -= RadDockEvents_TabStripItemCreating;
    base.OnClosed(e);
}
Unplanned
Last Updated: 04 Aug 2020 10:46 by ADMIN
Please run the sample project in an environment with left monitor at 150% DPI scaling and right monitor at 100%. You will notice that the ToolWindow remains with fixed width.
Unplanned
Last Updated: 19 Apr 2018 13:49 by ADMIN
If you drag a regular form to the top of the screen it will be maximized. This should work with the floating window as well.
Unplanned
Last Updated: 29 Mar 2016 12:17 by ADMIN
To reproduce:
- Add two tool windows and auto hide them, one on the left and on the right
- Then call the AutoHideWindow method like this (ToolWindow1 should be on left side):

RadDock1.AutoHideWindow(ToolWindow1)

- You will notice that the second windows is moved on the left.

Workaround:
Use the DockState property instead of the method.
Unplanned
Last Updated: 22 Apr 2024 10:05 by ADMIN

 this.toolWindow1.TabStrip.MinimumSize = new Size(200,200)

 

 

 

Unplanned
Last Updated: 09 Jan 2023 13:37 by ADMIN
All you need to do to reproduce the issue is to run, close, run, close several times - maybe 5 or more times, and observe the floating windows increasing in size.  
Unplanned
Last Updated: 29 Mar 2016 12:15 by ADMIN
To reproduce:
radDock1.ElementTree.EnableApplicationThemeName = false;
radDock1.ThemeName = "TelerikMetroBlue";
ThemeResolutionService.ApplicationThemeName = "Office2013Light";

Workaround:
ThemeResolutionService.ApplyThemeToControlTree(this,"Office2013Light");
radDock1.ThemeName = "TelerikMetroBlue";

Unplanned
Last Updated: 20 Mar 2019 09:44 by ADMIN
To reproduce: please run the attached sample project  and follow the steps in the gif file.  After some further testing you will notice that the tab items are re-positioned incorrectly when you click a certain tab. It jumps to another location.

Workaround: set the MultiLineItemFitMode property to None and specify the DocumentWindow.TabStripItem.Row property in order to arrange the tabs as you wish.
Unplanned
Last Updated: 26 Jun 2018 07:42 by ADMIN
Please use attached project and try the following:

1. Run the application and move toolWindow3 from right to the bottom panel.
2. Hide toolWindow3 by 'Toggle' menu item or just close it.
3. Save the layout pressing 'Save' menu item.
4. Close the application and run it again.
5. Restore layout using 'Init' menu item.
6. Press 'Toggle' menu item to show toolWindow3. 

Workaround:
Make the window visible before loading the layout.
Unplanned
Last Updated: 15 Aug 2017 09:33 by ADMIN
Currently tool windows cannot be re-sized proportionally in this scenario.
Unplanned
Last Updated: 15 Aug 2017 09:23 by ADMIN
RadDock should support a MDI mode where the child mdi forms are displayed in the old fashioned way.
Unplanned
Last Updated: 19 Jun 2017 11:27 by ADMIN
How to reproduce: check the attached project and video.

Workaround: persist the auto-hidden windows separately
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.radDock1.AutoHideWindowDisplaying += RadDock1_AutoHideWindowDisplaying;

        //Wworkaround
        this.radDock1.LoadedFromXml += RadDock1_LoadedFromXml;
    }

    private void RadDock1_LoadedFromXml(object sender, EventArgs e)
    {
        string res = File.ReadAllText(@"..\..\auto-hidden.txt");
        foreach (DockWindow window in this.radDock1.GetWindows(typeof(ToolWindow), typeof(HostWindow)))
        {
            if (res.IndexOf(window.Name) != -1)
            {
                window.DockState = DockState.AutoHide;
            }
        }
    }

    private void RadDock1_AutoHideWindowDisplaying(object sender, Telerik.WinControls.UI.Docking.AutoHideWindowDisplayingEventArgs e)
    {
    }

    private void button1_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();
        foreach (DockWindow window in this.radDock1.GetWindows(typeof(ToolWindow), typeof(HostWindow)))
        {
            if (window.DockState == DockState.AutoHide)
            {
                sb.AppendLine(window.Name);
            }
        }

        File.WriteAllText(@"..\..\auto-hidden.txt", sb.ToString());
        this.radDock1.SaveToXml(@"..\..\layout.xml");
    }

    private void button2_Click(object sender, EventArgs e)
    {
        this.radDock1.LoadFromXml(@"..\..\layout.xml");
    }
}
Unplanned
Last Updated: 19 Jun 2017 10:57 by ADMIN
How to reproduce:
1. Run the attached project
2. Float a tool window
3. Save layout
4. Close the application and start it again
5. Load the saved layout
6. Hide the floating tool window
7. Save layout
8. Close the application and start it again
9. Load layout
Notice that the hidden tool window would be floating

Workaround:
Manually store the hidden tool windows and restore their state after your load the layout:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void radButton1_Click(object sender, EventArgs e)
    {
        this.radDock1.SaveToXml(@"..\..\layout.xml");
        StringBuilder sb = new StringBuilder();
        foreach (DockWindow window in this.radDock1.DockWindows.GetWindows(DockState.Hidden))
        {
            if (window is ToolWindow)
            {
                sb.Append(window.Name);
                sb.Append(";");
            }
        }

        File.WriteAllText(@"..\..\hidden.txt", sb.ToString());
    }

    private void radButton2_Click(object sender, EventArgs e)
    {
        this.radDock1.LoadFromXml(@"..\..\layout.xml");

        string[] windows = File.ReadAllText(@"..\..\hidden.txt").Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
        foreach (var window in windows)
        {
            this.radDock1.GetWindow<ToolWindow>(window).Hide();
        }
    }
}
Unplanned
Last Updated: 04 Apr 2016 08:25 by Ryan
To reproduce:
- Add a form with two auto-hidden windows - one on the left and one on the right.
- Drag one of the windows by just showing it (do not pin it)
- The floating window will contain both tool windows, instead of just the dragged one.

Workaround:
Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    RadDock1.DockWindow(ToolWindow2, DockPosition.Right)
    RadDock1.AutoHideWindows(New DockWindow() {ToolWindow2}, AutoHidePosition.Right)
    ToolWindow2.Tag = DockPosition.Right
 
    RadDock1.AutoHideWindow(ToolWindow1)
    ToolWindow1.Tag = DockPosition.Left
End Sub
 
Private Sub RadDock1_FloatingWindowCreated(sender As Object, e As FloatingWindowEventArgs) Handles RadDock1.FloatingWindowCreated
    For Each dw As DockWindow In CType(sender, RadDock).DockWindows
        If dw.Handle <> CType(sender, RadDock).ActiveWindow.Handle Then
            dw.DockState = dw.PreviousDockState
 
            RadDock1.AutoHideWindows(New DockWindow() {dw}, dw.Tag)
        End If
    Next
End Sub
Unplanned
Last Updated: 01 May 2024 09:57 by ADMIN
In this case, we have 5 MDI children and the last one is active. Closing the first one from the tab close button will activate the second child. Closing a non-active child should not change the active window in MDI scenario.
Unplanned
Last Updated: 29 Mar 2016 12:14 by ADMIN
To reproduce:

Sub New()
    InitializeComponent()

    Me.WindowState = FormWindowState.Maximized
    Dim leftWindow As ToolWindow = New ToolWindow()
    leftWindow.Text = "Left Window"
    Me.RadDock1.DockWindow(leftWindow, DockPosition.Left)
    leftWindow.DockState = DockState.AutoHide
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If Me.RadDock1.DockWindows.ToolWindows.First().ParentForm IsNot Nothing Then
        Me.RadDock1.DockWindows.ToolWindows.First().ParentForm.Show()
    End If
End Sub

Workaround: maximize the form after the auto-hide popup is shown:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    If Me.RadDock1.DockWindows.ToolWindows.First().ParentForm IsNot Nothing Then
        Me.RadDock1.DockWindows.ToolWindows.First().ParentForm.Show()
    End If
    Me.WindowState = FormWindowState.Maximized
End Sub
Unplanned
Last Updated: 24 Aug 2018 12:59 by ADMIN
To reproduce: run the application. On the first DocumentWindow there is a UserControl with a wizard. Pressing the Tab key will navigate the command buttons. On the second DocumentWindow there is a similar wizard which is NOT hosted in a UserControl. 

Workaround: Currently, you can override the ProcessDialogKey method of RadWizard  and handle the Tab key where you can perform the desired logic, e.g. select a specific control:

        public class MyWizard : RadWizard
        {
            protected override bool ProcessDialogKey(Keys keyData)
            {
                if (keyData == Keys.Tab)
                {
                    WizardPage page = this.SelectedPage;
                    page.ContentArea.Controls[0].Focus();
                    return false;
                }
                return base.ProcessDialogKey(keyData);
            }
        }
1 2 3