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: 16 Sep 2022 07:07 by Ark Technologies
In this particular case, a HostWindow is hidden in the Loaded event of the Form. When we save the layout and load it again, the wrong autohide window is shown. The HostWindow.Hide() method in the loading scenario is forcing the wrong AutoHide HostWindow to be shown.
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: 02 Feb 2022 12:27 by ADMIN

Use the following code snippet:

            ToolTabStrip tabStrip = this.toolWindow1.TabStrip as ToolTabStrip; 
            this.toolWindow1.Text = "<html><span style=\"font-family:Segoe UI;font-size:8.25;\"><b>Hello</b></span><span" +
   " style=\"font-family:Segoe UI;font-size:8.25;\">Woooooooooooooooooorld</span></html>";
            TextPrimitive text = tabStrip.CaptionElement.FindDescendant<TextPrimitive>();
            text.ClipDrawing = true;
            text.StretchHorizontally = false;
            text.DisableHTMLRendering = false;
            text.AutoEllipsis = false;

Unplanned
Last Updated: 13 Oct 2021 06:40 by ADMIN
Created by: Arikkan
Comments: 0
Category: Dock
Type: Bug Report
0
Please refer to the attached gif file illustrating better how the non-pinned tabs go behind the pinned tab. This behavior should be prevented and the tabs need to be arranged in a container on the right side of pinned tab.
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: 28 Jul 2020 12:32 by ADMIN

To reproduce:

1. Create a floating window

2. Try to drop another window into the floating window

3. The window is successfully docked into the floating window, but DockStateChanged event does not fire.

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: 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);
            }
        }
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: 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: 06 Mar 2018 09:34 by ADMIN
The attached videos demonstrate the present behavior and the desired one

How to reproduce:
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        this.radDock1.EnableFloatingWindowSnapping = true;
        DragDropService svc = this.radDock1.GetService<DragDropService>();
        svc.DragDropMode = DragDropMode.Preview;
    }
}
Unplanned
Last Updated: 06 Dec 2017 09:19 by Froggie
This property should be inherited by all tool, document, floating and autohide windows.
Unplanned
Last Updated: 20 Nov 2017 15:27 by ADMIN
To reproduce:
Open the attached project and press Ctrl+ Tab in the first text box. Since the textboxes are accepting the Tab, Ctrl + Tab should move to the other control.


Workaround
// RadTextBox
private void TextBoxItem_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
    if ((e.KeyData & Keys.Tab) == Keys.Tab && (e.KeyData & Keys.Control) == Keys.Control)
    {
        e.IsInputKey = true;
        var item = sender as RadTextBoxItem;
 
        this.SelectNextControl(item.HostedControl, true, true, true, true);
 
    }
}
//RadTextBoxControl
private void RadTextBoxControl1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
    if ((e.KeyData & Keys.Tab) == Keys.Tab && (e.KeyData & Keys.Control) == Keys.Control)
    {
        e.IsInputKey = true;
        this.SelectNextControl(sender as RadTextBoxControl, true, true, true, true);
 
    }
}
Unplanned
Last Updated: 20 Nov 2017 12:49 by ADMIN
Workrarund:
If possible create tool-windows with added user controls
public static ContentUserControl CreateContentUserControl(RadDock dock)
{
    ContentUserControl uc = new ContentUserControl();
    if (dock != null)
    {
        ToolWindow hostWindow = new ToolWindow("ContentUserControl");
        hostWindow.Controls.Add(uc);
        hostWindow.Name = uc.Name;
        dock.FloatWindow(hostWindow);
    }

    return uc;
}
Unplanned
Last Updated: 08 Nov 2017 15:11 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Dock
Type: Bug Report
1
To reproduce: please refer to the attached sample project and follow the steps illustrated in the gif file. 

Workaround: after loading the layout, set the MaximumSize for the FloatingWindow:
        public RadForm1()
        {
            InitializeComponent();

            this.radDock1.FloatingWindowCreated += radDock1_FloatingWindowCreated;
        }

        Size lastSize = Size.Empty;

        private void radDock1_FloatingWindowCreated(object sender, Telerik.WinControls.UI.Docking.FloatingWindowEventArgs e)
        {
          lastSize=  e.Window.Size;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int reps;
            if (!int.TryParse(radMaskedEditBox1.Text, out reps))
            {
                MessageBox.Show(this, "Enter a valid number for repititions.");
                return;
            }

            using (var dockLayout = new MemoryStream())
            {
                for (int i = 0; i < reps; i++)
                {
                    dockLayout.SetLength(0);
                    radDock1.SaveToXml(dockLayout);
                    radDock1.LoadFromXml(dockLayout);

                    foreach (Telerik.WinControls.UI.Docking.FloatingWindow fw in this.radDock1.ActiveFloatingWindows)
                    {
                        fw.MaximumSize = lastSize;
                    }
                }
            }
        }

Unplanned
Last Updated: 15 Aug 2017 10:09 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Dock
Type: Bug Report
1
Please refer to the attached sample project. Click the "show" button to open a new MDI child form. Then, press the "close" button. In the Output tab you will notice that the FormClosing/FormClosed events are fired twice.

Workaround: use the RadDock's DockWindowClosing and DockWindowClosed events.
Unplanned
Last Updated: 31 Jul 2017 07:50 by ADMIN
When custom controls that are containing SplitContainers and TableLayoutPanels are used in RadDock there is invalid resizing behaviour.
The underlying controls are not properly resized when the entire form is resized as well. 
The issue exists only on Windows 7 x64 machines. 

Workaround:
Use RadLayoutControl instead of the TableLayoutPanel.
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");
    }
}
1 2