public static void Execute(DockItem dockItem, DockControl dockControl, Rect floatingWindowBounds, DockItemShowMethod showMethod)
 {
     Debug.Assert(dockControl != null);
     if (TestUndo(dockItem, dockControl))
     {
         dockControl.ExecuteCommand(new ShowAsFloatingCommand(dockItem, floatingWindowBounds, showMethod));
     }
     else
     {
         dockItem.DoShowAsFloating(dockControl, floatingWindowBounds, showMethod);
     }
 }
            protected override void ExecuteOverride(DockControl dockControl)
            {
                DockItem dockItem = GetDockItem(dockControl);

                dockItem.DoShowAsFloating(dockControl, _floatingWindowBounds, ShowMethod);
                if (double.IsNaN(_floatingWindowBounds.X))
                {
                    _floatingWindowBounds.X = dockItem.FirstPane.FloatingWindow.Left;
                }
                if (double.IsNaN(_floatingWindowBounds.Y))
                {
                    _floatingWindowBounds.Y = dockItem.FirstPane.FloatingWindow.Top;
                }
            }