Completed
Last Updated: 27 Nov 2014 14:58 by ADMIN
To reproduce: 
1. Add several DocumentWindows and ToolWindows to the RadDock. 
2. Add RadButton controls to the available windows. 
3. Subscribe to the ActiveWindowChanged event.
4. Run the application and click over the strip item of one ToolWindow. As a result the ActiveWindowChanged  event is fired. Click over the RadButton for a DocumentWindow. You will notice that the ActiveWindowChanged  event is not fired. 

Note: When the active DocumentWindow contains controls ,e.g. RadButton, the tab strip item is not bold.

Workaround:

static RadDock dock;

public Form1()
{
    InitializeComponent();
    dock = this.radDock1;
    Application.AddMessageFilter(new MyFilterClass());
}

public const int WM_LBUTTONDOWN = 0x0201;

public class MyFilterClass : IMessageFilter
{
    public bool PreFilterMessage(ref Message m)
    {
        if (m.Msg == WM_LBUTTONDOWN)
        {
            Point pt = dock.PointToClient(Cursor.Position);
        
            var clickedElement = dock.GetChildAtPoint(pt, GetChildAtPointSkip.Invisible) ;
            while (!(clickedElement is ToolWindow || clickedElement is DocumentWindow) && clickedElement != null)
            {
                ToolTabStrip tabStrip = clickedElement as ToolTabStrip;
                if (tabStrip != null)
                {
                    clickedElement = tabStrip.ActiveWindow;
                }
                else
                {
                    clickedElement = clickedElement.GetChildAtPoint(pt,  GetChildAtPointSkip.Invisible);
                }
            }

            if (clickedElement != null)
            {
                dock.ActiveWindow = clickedElement as DockWindow;
            }
        }
        return false;
    }
}

private void radDock1_ActiveWindowChanged(object sender, Telerik.WinControls.UI.Docking.DockWindowEventArgs e)
{
    e.DockWindow.TabStripItem.Font = new Font(e.DockWindow.TabStripItem.Font, FontStyle.Bold);
    
    foreach (DocumentWindow dw in this.radDock1.DockWindows.DocumentWindows)
    {
        if (dw.Name != e.DockWindow.Name)
        {
            dw.TabStripItem.Font = new Font(e.DockWindow.TabStripItem.Font, FontStyle.Regular);
        }
    }
}
Completed
Last Updated: 27 Aug 2015 15:45 by ADMIN
To reproduce:

private void commandBarButton1_Click(object sender, EventArgs e)
{
    Telerik.WinControls.UI.RadForm frm;
    frm = new Telerik.WinControls.UI.RadForm();
    frm.Text = "Test" + num;
    num++;

    Telerik.WinControls.UI.Docking.HostWindow host;
    host = new Telerik.WinControls.UI.Docking.HostWindow(frm, Telerik.WinControls.UI.Docking.DockType.Document);
    this.radDock1.DockWindow(host, this.radDock1.GetDefaultDocumentTabStrip(true), Telerik.WinControls.UI.Docking.DockPosition.Fill);
}

Workaround:
 this.radDock1.TransactionCommitting += radDock1_TransactionCommitting;

private void radDock1_TransactionCommitting(object sender, RadDockTransactionCancelEventArgs e)
{
    if (e.Transaction.TransactionType == DockTransactionType.DragDrop && e.Transaction.TargetState == DockState.Docked &&
       !( e.Transaction.AssociatedWindows.First() is ToolWindow))
    {
        FieldInfo fi = typeof(RadDockTransaction).GetField("targetState",BindingFlags.NonPublic |BindingFlags.Instance);
        fi.SetValue(e.Transaction, DockState.TabbedDocument);
    }
}
Completed
Last Updated: 13 Jul 2015 12:17 by ADMIN
To reproduce:

1. Add two RadDock controls on the form and one RadButton.
2. Use the following code snippet:

public Form1()
{
    InitializeComponent();

    this.IsMdiContainer = true;
    this.radDock1.AutoDetectMdiChildren = true;
    this.radDock2.AutoDetectMdiChildren = false;

    this.radDock1.ActiveWindowChanged += radDock1_ActiveWindowChanged;
}

private void radButton1_Click(object sender, EventArgs e)
{
    RadForm f = new RadForm();
    f.MdiParent = this;
    f.Show();
    f.Text = DateTime.Now.ToLongTimeString();
}

private void radDock1_ActiveWindowChanged(object sender, Telerik.WinControls.UI.Docking.DockWindowEventArgs e)
{
    Console.WriteLine("ActiveWindowChanged");
}

If you click the button you will notice that the last added DocumentWindow is not active.

Workaround:  this.radDock1.DockWindowAdded += radDock1_DockWindowAdded;

private void radDock1_DockWindowAdded(object sender, Telerik.WinControls.UI.Docking.DockWindowEventArgs e)
{
     this.radDock1.ActiveWindow = e.DockWindow;
}
Completed
Last Updated: 13 Jul 2015 10:58 by ADMIN
To reproduce:
RadDock goRadDock = new RadDock();
public RadForm1()
{
    InitializeComponent();
   
    this.Load+=RadForm1_Load;
}
private void RadForm1_Load(object sender, System.EventArgs e)
{
    goRadDock.Dock = DockStyle.Fill;
    this.Controls.Add(goRadDock);

    Telerik.WinControls.UI.RadListView loPanorama = new RadListView();
    HostWindow loHost;
    //' Set Panorama Properties
    // loPanorama.BackColor = System.Drawing.Color.Transparent;
    loPanorama.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama.Location = new System.Drawing.Point(0, 0);
    loPanorama.Margin = new System.Windows.Forms.Padding(0);
    loPanorama.Name = "Panorama";
    // loPanorama.ScrollBarThickness = 1;
    // loPanorama.ScrollingBackground = true;
    loPanorama.ShowGroups = true;
    loPanorama.Size = new System.Drawing.Size(787, 315);
    loHost = goRadDock.DockControl(loPanorama, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost.Text = "Panorama";
    loHost.DockState = DockState.AutoHide;

    Telerik.WinControls.UI.RadPanorama loPanorama2 = new Telerik.WinControls.UI.RadPanorama();
    HostWindow loHost2;
    //' Set Panorama2 Properties
    // loPanorama2.BackColor = System.Drawing.Color.Transparent;
    loPanorama2.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama2.Location = new System.Drawing.Point(0, 0);
    loPanorama2.Margin = new System.Windows.Forms.Padding(0);
    loPanorama2.Name = "Panorama2";
    loPanorama2.ScrollBarThickness = 1;
    loPanorama2.ScrollingBackground = true;
    loPanorama2.ShowGroups = true;
    loPanorama2.Size = new System.Drawing.Size(787, 315);
    loHost2 = goRadDock.DockControl(loPanorama2, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost2.Text = "Panorama2";
    loHost2.DockState = DockState.AutoHide;

    Telerik.WinControls.UI.RadPanorama loPanorama3 = new Telerik.WinControls.UI.RadPanorama();
    HostWindow loHost3;
    //' Set Panorama2 Properties
    //  loPanorama3.BackColor = System.Drawing.Color.Transparent;
    loPanorama3.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama3.Location = new System.Drawing.Point(0, 0);
    loPanorama3.Margin = new System.Windows.Forms.Padding(0);
    loPanorama3.Name = "Panorama3";
    loPanorama3.ScrollBarThickness = 1;
    loPanorama3.ScrollingBackground = true;
    loPanorama3.ShowGroups = true;
    loPanorama3.Size = new System.Drawing.Size(787, 315);
    loHost3 = goRadDock.DockControl(loPanorama3, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost3.Text = "Panorama3";
    loHost3.DockState = DockState.AutoHide;

    Telerik.WinControls.UI.RadPanorama loPanorama4 = new Telerik.WinControls.UI.RadPanorama();
    HostWindow loHost4;
    //' Set Panorama2 Properties
    //  loPanorama4.BackColor = System.Drawing.Color.Transparent;
    loPanorama4.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama4.Location = new System.Drawing.Point(0, 0);
    loPanorama4.Margin = new System.Windows.Forms.Padding(0);
    loPanorama4.Name = "Panorama4";
    loPanorama4.ScrollBarThickness = 1;
    loPanorama4.ScrollingBackground = true;
    loPanorama4.ShowGroups = true;
    loPanorama4.Size = new System.Drawing.Size(787, 315);
    loHost4 = goRadDock.DockControl(loPanorama4, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost4.Text = "Panorama4";
    loHost4.DockState = DockState.AutoHide;
}

Workaround:
RadDock goRadDock = new RadDock();

public RadForm1()
{
    InitializeComponent();

    goRadDock.BeginInit();
    goRadDock.Dock = DockStyle.Fill;
    this.Controls.Add(goRadDock);

    RadPanorama loPanorama = new RadPanorama();
    HostWindow loHost;

    loPanorama.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama.Location = new System.Drawing.Point(0, 0);
    loPanorama.Margin = new System.Windows.Forms.Padding(0);
    loPanorama.Name = "Panorama";
    // loPanorama.ScrollBarThickness = 1;
    // loPanorama.ScrollingBackground = true;
    loPanorama.ShowGroups = true;
    loPanorama.Size = new System.Drawing.Size(787, 315);
    loHost = goRadDock.DockControl(loPanorama, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost.Text = "Panorama";
   

    Telerik.WinControls.UI.RadPanorama loPanorama2 = new Telerik.WinControls.UI.RadPanorama();
    HostWindow loHost2;
    //' Set Panorama2 Properties
    // loPanorama2.BackColor = System.Drawing.Color.Transparent;
    loPanorama2.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama2.Location = new System.Drawing.Point(0, 0);
    loPanorama2.Margin = new System.Windows.Forms.Padding(0);
    loPanorama2.Name = "Panorama2";
    //loPanorama2.ScrollBarThickness = 1;
  //  loPanorama2.ScrollingBackground = true;
    loPanorama2.ShowGroups = true;
    loPanorama2.Size = new System.Drawing.Size(787, 315);
    loHost2 = goRadDock.DockControl(loPanorama2, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost2.Text = "Panorama2";


    Telerik.WinControls.UI.RadPanorama loPanorama3 = new Telerik.WinControls.UI.RadPanorama();
    HostWindow loHost3;
    //' Set Panorama2 Properties
    //  loPanorama3.BackColor = System.Drawing.Color.Transparent;
    loPanorama3.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama3.Location = new System.Drawing.Point(0, 0);
    loPanorama3.Margin = new System.Windows.Forms.Padding(0);
    loPanorama3.Name = "Panorama3";
    loPanorama3.ScrollBarThickness = 1;
    loPanorama3.ScrollingBackground = true;
    loPanorama3.ShowGroups = true;
    loPanorama3.Size = new System.Drawing.Size(787, 315);
    loHost3 = goRadDock.DockControl(loPanorama3, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost3.Text = "Panorama3";
   

    Telerik.WinControls.UI.RadPanorama loPanorama4 = new Telerik.WinControls.UI.RadPanorama();
    HostWindow loHost4;
    //' Set Panorama2 Properties
    //  loPanorama4.BackColor = System.Drawing.Color.Transparent;
    loPanorama4.Dock = System.Windows.Forms.DockStyle.Fill;
    loPanorama4.Location = new System.Drawing.Point(0, 0);
    loPanorama4.Margin = new System.Windows.Forms.Padding(0);
    loPanorama4.Name = "Panorama4";
    loPanorama4.ScrollBarThickness = 1;
    loPanorama4.ScrollingBackground = true;
    loPanorama4.ShowGroups = true;
    loPanorama4.Size = new System.Drawing.Size(787, 315);
    loHost4 = goRadDock.DockControl(loPanorama4, Telerik.WinControls.UI.Docking.DockPosition.Left);
    loHost4.Text = "Panorama4";
  
    goRadDock.EndInit();
 
    loHost.DockState = DockState.AutoHide;      
    loHost2.DockState = DockState.AutoHide;
    loHost3.DockState = DockState.AutoHide;
    loHost4.DockState = DockState.AutoHide;
}

Completed
Last Updated: 26 Mar 2013 08:52 by ADMIN
To reproduce: 
using System.Windows.Forms;
using Telerik.WinControls.UI.Docking;

namespace Lab.Dock
{
    public partial class DockMDIForm : MainForm
    {
        private RadDock radDock = new RadDock();

        public DockMDIForm()
        {
          
Completed
Last Updated: 01 Jul 2014 09:44 by ADMIN
To reproduce:

Add RadDock and ToolWindow to the RadDock and dock it. Start the application and drag out the ToolWindow. You will notice that when you try to drag it back in the RadDock you are not able to.
Completed
Last Updated: 01 Jul 2014 08:20 by ADMIN
To reproduce:

Add a RadDock to a Form, add two ToolWindows and dock them. Drag out one of the toolwindows to the edge of the other one until the drag hint is selected and continue dragging out of the form. You will notice that the drag hint is still selected.
Completed
Last Updated: 23 Jul 2010 10:08 by ADMIN
ADMIN
Created by: Stefan
Comments: 0
Category: Dock
Type: Bug Report
1
The AutoHide and Docking button of the toolWindows does not have a localization strings. Same with the document window.
Completed
Last Updated: 04 May 2011 06:18 by Jesse Dyck
ADMIN
Created by: Stefan
Comments: 1
Category: Dock
Type: Bug Report
1
FIX. RadDock does not load the ActiveWindow correctly.
Completed
Last Updated: 26 Apr 2011 10:50 by ADMIN
FIX. RadDock SplitterWidth property is not taken into consideration, nor setting the MinSize of each splitter individually.
Completed
Last Updated: 24 Jun 2015 09:33 by ADMIN
FIX. RadDock - double clicking the expand tool window button causes the default form to redraw over the RadForm
Completed
Last Updated: 20 Jun 2014 15:00 by ADMIN
To reproduce:
1.Add a RadDock with a ToolWindow and a DocumentWindow. Add several controls to all windows. Use the following code:


protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    if (System.IO.File.Exists(@"..\..\..\layoutTest.xml"))
        this.radDock1.LoadFromXml(@"..\..\..\layoutTest.xml");
}


protected override void OnClosing(CancelEventArgs e)
{
    this.radDock1.SaveToXml(@"..\..\..\layoutTest.xml");
    base.OnClosing(e);
}


2. Run the application and change the current layout. 
3. Close the form and run the application again. The controls which belong to the RadDock's DocumentWindow disappear from the dialog.

Workaround:
class MyDock : RadDock
{
    protected override void LoadFromXmlCore(System.Xml.XmlReader reader, bool oldXmlFormat)
    {
        //stop the base logic
        //base.LoadFromXmlCore(reader, oldXmlFormat);
 
        if (reader == null)
        {
            return;
        }
 
        this.ActiveWindow = null;
 
        FieldInfo prevActiveWindow = typeof(RadDock).GetField("prevActiveWindow", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField);
        prevActiveWindow.SetValue(this, null); //this.prevActiveWindow = null;
 
        FieldInfo attachedWindows = typeof(RadDock).GetField("attachedWindows", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
        SortedList<string, DockWindow> _attachedWindows = attachedWindows.GetValue(this) as SortedList<string, DockWindow>;
        MethodInfo CleanAutoHideTabs = typeof(RadDock).GetMethod("CleanAutoHideTabs", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
        CleanAutoHideTabs.Invoke(this, new object[] { _attachedWindows.Values, true }); //this.CleanAutoHideTabs(this.attachedWindows.Values, true);
 
        MethodInfo ResetDesiredDockState = typeof(RadDock).GetMethod("ResetDesiredDockState", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
        ResetDesiredDockState.Invoke(this, null); //this.ResetDesiredDockState();
 
        MethodInfo OnLoadingFromXML = this.DocumentManager.GetType().GetMethod("OnLoadingFromXML", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
        OnLoadingFromXML.Invoke(this.DocumentManager, null); //this.DocumentManager.OnLoadingFromXML();
 
        if (oldXmlFormat)
        {
            this.BeginTransactionBlock(false);
 
            MethodInfo LoadFromOldXml = typeof(RadDock).GetMethod("LoadFromOldXml", System.Reflection.BindingFlags.NonPublic | BindingFlags.Instance);
            LoadFromOldXml.Invoke(this, new object[] {reader}); // this.LoadFromOldXml(reader);
 
            this.EndTransactionBlock();
        }
        else
        {
            MethodInfo LoadFromNewXml = typeof(RadDock).GetMethod("LoadFromNewXml", System.Reflection.BindingFlags.NonPublic |  BindingFlags.Instance);
            LoadFromNewXml.Invoke(this, new object[] { reader }); // this.LoadFromNewXml(reader);
        }
 
        this.EnsureInitialized();
        this.OnLoadedFromXml();
    }
 
    public override string ThemeClassName
    {
        get
        {
            return typeof(RadDock).FullName;
        }
    }
}
Completed
Last Updated: 15 Jan 2015 17:55 by ADMIN
To reproduce:

Add a few ToolWindows to RadDock and start the application. Drag one window out of the form and dock the others inside of it. Dock the window back to the RadDock. You will notice that only the current window will be docked leaving the rest of the windows floating. The correct behavior is the whole window with its child windows to be docked.

Workaround:

Subscribe to the DockStateChanging and DockStateChanged events and manually add the windows.

private IEnumerable<DockWindow> windows;
void RadDock_DockStateChanging(object sender, DockStateChangingEventArgs e)
{
    if (e.NewWindow.FloatingParent == null)
    {
        this.windows = Enumerable.Empty<DockWindow>();
        return;
    }


    this.windows = DockHelper.GetDockWindows(e.NewWindow.FloatingParent, true, this.RadDock).Where(x => x != e.NewWindow);
}


void RadDock_DockStateChanged(object sender, DockWindowEventArgs e)
{
    foreach (DockWindow window in windows)
    {
        this.RadDock.DockWindow(window, e.DockWindow.DockTabStrip, DockPosition.Fill);
    }
}
Completed
Last Updated: 04 Jun 2019 11:04 by ADMIN
Use the attached project to reproduce.

Workaround:
private void RadForm1_SizeChanged(object sender, EventArgs e)
{
    toolWindow1.EnsureVisible();
}
Completed
Last Updated: 06 Jan 2017 09:14 by ADMIN
To reproduce:
- Load a layout with a floating window in it. 
- The close button is disabled.


Workaround:
private void RadDock1_LoadedFromXml(object sender, EventArgs e)
{
    foreach (FloatingWindow item in radDock1.FloatingWindows)
    {
        item.UpdateCloseButton();
    }
}

Completed
Last Updated: 25 Jan 2016 15:27 by ADMIN
Steps to reproduce:

1. Open the form at design time
2. Add a RadDock
3. Add a MS Panel
4. Put the RadDock inside the panel
5. Dock the Panel to Fill, dock RadDock to Fill as well.
6. Open RadDock's Advanced Layout Designer
7. Add two ToolWindows to the left and redock them in order to share one common container.
8. Hide the ToolWindows by unchecking the check-boxes in the Advanced Layout Designer and save the changes
9. Add a RadPanel (Dock=Fill) to the active ToolWindow.
10. Add a RadGridView (Anchor = Top, Left, Right, Bottom ), a left RadButton (Anchor = Bottom, Left) and a right RadButton (Anchor = Bottom, Right)to the panel.
11. Save thfs in the designer. Select the RadPanel with the grid and the buttons and click Copy.
12. Select the other ToolWindow and paste.
13. Save the form. Close the designer and reopen it again. You will notice that the pasted panel is not as expected.

The attached video (drag and drop over the browser to play it) illustrates better the performed steps.

Workaround: do not place the RadDock inside a MS Panel. RadDock is supposed to be used as a main container in a form.
Completed
Last Updated: 02 Jul 2015 08:51 by ADMIN
Completed
Last Updated: 13 Mar 2018 07:36 by Dimitar
To reproduce:
            ThemeResolutionService.ApplicationThemeName = "FluentDark";

            this.documentTabStrip1.TabStripAlignment = Telerik.WinControls.UI.TabStripAlignment.Left;
            this.documentTabStrip1.TabStripTextOrientation = Telerik.WinControls.UI.TabStripTextOrientation.Vertical;

Workaround:  this.documentTabStrip1.TabStripElement.ItemBorderAndFillOrientation = Telerik.WinControls.UI.PageViewContentOrientation.Horizontal;
Completed
Last Updated: 15 Aug 2017 10:54 by ADMIN
Please refer to the attached sample project and follow the steps in the gif file.

The issue appears when the ToolWindow DockState is set to auto-hide for the firs time as well.