internal void TestDrop(IDockDragSource dragSource, DockOutlineBase dockOutline) { if (VisibleNestedPanes.Count == 1) { var pane = VisibleNestedPanes[0]; if (!dragSource.CanDockTo(pane)) { return; } var ptMouse = MousePosition; var lParam = Win32Helper.MakeLong(ptMouse.X, ptMouse.Y); if (NativeMethods.SendMessage(Handle, (int)Msgs.WM_NCHITTEST, 0, lParam) == (uint)HitTest.HTCAPTION) { dockOutline.Show(VisibleNestedPanes[0], -1); } } }
public static DockPane PaneAtPoint(Point pt, DockPanel dockPanel) { for (var control = Win32Helper.ControlAtPoint(pt); control != null; control = control.Parent) { var content = control as IDockContent; if (content != null && content.DockHandler.DockPanel == dockPanel) { return(content.DockHandler.Pane); } var pane = control as DockPane; if (pane != null && pane.DockPanel == dockPanel) { return(pane); } } return(null); }