コード例 #1
0
ファイル: DockedWindow.cs プロジェクト: zoombapup/ATF
        /// <summary>
        /// Function called when dragged window leaves already docked window</summary>
        /// <param name="sender">Dockable window being dragged</param>
        /// <param name="e">Drag and drop arguments when window is dropped to be docked to dockpanel</param>
        public void DockDragLeave(object sender, DockDragDropEventArgs e)
        {
            DockIconsLayer dockIconLayer = Root.DockIconsLayer;

            dockIconLayer.RemoveChild(m_dockLeftIcon);
            dockIconLayer.RemoveChild(m_dockRightIcon);
            dockIconLayer.RemoveChild(m_dockTopIcon);
            dockIconLayer.RemoveChild(m_dockBottomIcon);
            dockIconLayer.RemoveChild(m_dockTabIcon);
            if (m_dockPreviewShape != null)
            {
                Root.DockIconsLayer.RemoveChild(m_dockPreviewShape);
                m_dockPreviewShape = null;
            }
            dockIconLayer.CloseIfEmpty();
        }
コード例 #2
0
 /// <summary>
 /// Function called when dragged window leaves already docked window</summary>
 /// <param name="sender">Dockable window being dragged</param>
 /// <param name="e">Drag and drop arguments when window is dropped to be docked to dockpanel</param>
 public void DockDragLeave(object sender, DockDragDropEventArgs e)
 {
     DockIconsLayer.RemoveChild(m_dockTabIcon);
     if (m_dockPreviewShape != null)
     {
         DockIconsLayer.RemoveChild(m_dockPreviewShape);
         m_dockPreviewShape = null;
     }
     DockIconsLayer.CloseIfEmpty();
 }
コード例 #3
0
        /// <summary>
        /// Function called when dragged window is moved over already docked window</summary>
        /// <param name="sender">Dockable window being dragged</param>
        /// <param name="e">Drag and drop arguments when window is dropped to be docked to dockpanel</param>
        public void DockDragOver(object sender, DockDragDropEventArgs e)
        {
            Point pos = e.MouseEventArgs.GetPosition(this);
            bool  b   = m_dockTabIcon.HitTest(pos);

            if (b && !m_dockTabIcon.Highlight)
            {
                m_dockTabIcon.Highlight = b;
                DockIconsLayer.RemoveChild(m_dockPreviewShape);
                m_dockPreviewShape = null;
                Window    owner = Window.GetWindow(this);
                Rectangle rect  = new Rectangle();
                rect.Fill          = Brushes.RoyalBlue;
                rect.Opacity       = 0.3;
                m_dockPreviewShape = rect;
                double space = 2;
                Point  p     = PointFromScreen(PointToScreen(new Point(space, space)));
                Canvas c     = new Canvas();
                c.SnapsToDevicePixels = true;
                c.Width  = DockedContent.ActualWidth;
                c.Height = DockedContent.ActualHeight;
                Canvas.SetLeft(c, p.X);
                Canvas.SetTop(c, p.Y);
                m_dockPreviewShape.Width  = DockedContent.ActualWidth - space * 2;
                m_dockPreviewShape.Height = DockedContent.ActualHeight - 20 - space * 2;
                Canvas.SetLeft(m_dockPreviewShape, 0);
                Canvas.SetTop(m_dockPreviewShape, 0);
                c.Children.Add(m_dockPreviewShape);

                rect         = new Rectangle();
                rect.Fill    = Brushes.RoyalBlue;
                rect.Opacity = 0.3;
                rect.Width   = Math.Min(DockedContent.ActualWidth / 4, 50);
                rect.Height  = 20;
                Canvas.SetLeft(rect, 0);
                Canvas.SetTop(rect, DockedContent.ActualHeight - 20 - space * 2);
                c.Children.Add(rect);
                m_dockPreviewShape = c;

                DockIconsLayer.InsertChild(0, m_dockPreviewShape);
            }
            else if (!b)
            {
                if (m_dockPreviewShape != null)
                {
                    DockIconsLayer.RemoveChild(m_dockPreviewShape);
                    m_dockPreviewShape = null;
                }
                m_dockTabIcon.Highlight = false;
            }
        }