예제 #1
0
        /// <summary>
        /// Function called when dragged window enters 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 DockDragEnter(object sender, DockDragDropEventArgs e)
        {
            Point center          = new Point(ActualWidth / 2, ActualHeight / 2);
            int   space           = (int)Root.DockIconSize.Width / 4;
            ResourceDictionary rd = new ResourceDictionary();

            rd.Source = new Uri("/Atf.Gui.Wpf;component/Resources/DockIcons.xaml", UriKind.Relative);
            if (m_dockLeftIcon == null)
            {
                m_dockLeftIcon   = new DockIcon((Style)rd["DockLeftIcon"], Root.DockIconSize);
                m_dockRightIcon  = new DockIcon((Style)rd["DockRightIcon"], Root.DockIconSize);
                m_dockTopIcon    = new DockIcon((Style)rd["DockTopIcon"], Root.DockIconSize);
                m_dockBottomIcon = new DockIcon((Style)rd["DockBottomIcon"], Root.DockIconSize);
                m_dockTabIcon    = new DockIcon((Style)rd["DockTabIcon"], Root.DockIconSize);
            }
            Window owner  = Window.GetWindow(this);
            Point  offset = ((UIElement)Root).PointFromScreen(PointToScreen(new Point(0, 0)));

            m_dockLeftIcon.Offset   = new Point(offset.X + center.X - Root.DockIconSize.Width / 2 - Root.DockIconSize.Width - space, offset.Y + center.Y - Root.DockIconSize.Height / 2);
            m_dockRightIcon.Offset  = new Point(offset.X + center.X + Root.DockIconSize.Width / 2 + space, offset.Y + center.Y - Root.DockIconSize.Height / 2);
            m_dockTopIcon.Offset    = new Point(offset.X + center.X - Root.DockIconSize.Width / 2, offset.Y + center.Y - Root.DockIconSize.Height / 2 - Root.DockIconSize.Height - space);
            m_dockBottomIcon.Offset = new Point(offset.X + center.X - Root.DockIconSize.Width / 2, offset.Y + center.Y + Root.DockIconSize.Height / 2 + space);
            m_dockTabIcon.Offset    = new Point(offset.X + center.X - Root.DockIconSize.Width / 2, offset.Y + center.Y - Root.DockIconSize.Height / 2);

            DockIconsLayer dockIconLayer = Root.DockIconsLayer;

            dockIconLayer.AddChild(m_dockLeftIcon);
            dockIconLayer.AddChild(m_dockRightIcon);
            dockIconLayer.AddChild(m_dockTopIcon);
            dockIconLayer.AddChild(m_dockBottomIcon);
            dockIconLayer.AddChild(m_dockTabIcon);
        }
예제 #2
0
        /// <summary>
        /// Function called when dragged window enters 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 DockDragEnter(object sender, DockDragDropEventArgs e)
        {
            Point center          = new Point(ActualWidth / 2, ActualHeight / 2);
            ResourceDictionary rd = new ResourceDictionary();

            rd.Source = new Uri("/Atf.Gui.Wpf;component/Resources/DockIcons.xaml", UriKind.Relative);
            if (m_dockTabIcon == null)
            {
                m_dockTabIcon = new DockIcon((Style)rd["DockTabIcon"], Root.DockIconSize);
            }
            m_dockTabIcon.Offset    = new Point(center.X - Root.DockIconSize.Width / 2, center.Y - Root.DockIconSize.Height / 2);
            m_dockTabIcon.Highlight = false;
            DockIconsLayer.AddChild(m_dockTabIcon);
        }
예제 #3
0
 public void DockDragEnter(object sender, DockDragDropEventArgs e)
 {
     Point center = new Point(ActualWidth / 2, ActualHeight / 2);
     ResourceDictionary rd = new ResourceDictionary();
     rd.Source = new Uri("/Atf.Gui.Wpf;component/Resources/DockIcons.xaml", UriKind.Relative);
     if (m_dockTabIcon == null)
     {
         m_dockTabIcon = new DockIcon((Style)rd["DockTabIcon"], Root.DockIconSize);
     }
     m_dockTabIcon.Offset = new Point(center.X - Root.DockIconSize.Width / 2, center.Y - Root.DockIconSize.Height / 2);
     m_dockTabIcon.Highlight = false;
     DockIconsLayer.AddChild(m_dockTabIcon);
 }
예제 #4
0
파일: DockedWindow.cs 프로젝트: GeertVL/ATF
        /// <summary>
        /// Function called when dragged window enters 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 DockDragEnter(object sender, DockDragDropEventArgs e)
        {
            Point center = new Point(ActualWidth / 2, ActualHeight / 2);
            int space = (int)Root.DockIconSize.Width / 4;
            ResourceDictionary rd = new ResourceDictionary();
            rd.Source = new Uri("/Atf.Gui.Wpf;component/Resources/DockIcons.xaml", UriKind.Relative);
            if (m_dockLeftIcon == null)
            {
                m_dockLeftIcon = new DockIcon((Style)rd["DockLeftIcon"], Root.DockIconSize);
                m_dockRightIcon = new DockIcon((Style)rd["DockRightIcon"], Root.DockIconSize);
                m_dockTopIcon = new DockIcon((Style)rd["DockTopIcon"], Root.DockIconSize);
                m_dockBottomIcon = new DockIcon((Style)rd["DockBottomIcon"], Root.DockIconSize);
                m_dockTabIcon = new DockIcon((Style)rd["DockTabIcon"], Root.DockIconSize);
            }
            Window owner = Window.GetWindow(this);
            Point offset = ((UIElement)Root).PointFromScreen(PointToScreen(new Point(0, 0)));
            m_dockLeftIcon.Offset = new Point(offset.X + center.X - Root.DockIconSize.Width / 2 - Root.DockIconSize.Width - space, offset.Y + center.Y - Root.DockIconSize.Height / 2);
            m_dockRightIcon.Offset = new Point(offset.X + center.X + Root.DockIconSize.Width / 2 + space, offset.Y + center.Y - Root.DockIconSize.Height / 2);
            m_dockTopIcon.Offset = new Point(offset.X + center.X - Root.DockIconSize.Width / 2, offset.Y + center.Y - Root.DockIconSize.Height / 2 - Root.DockIconSize.Height - space);
            m_dockBottomIcon.Offset = new Point(offset.X + center.X - Root.DockIconSize.Width / 2, offset.Y + center.Y + Root.DockIconSize.Height / 2 + space);
            m_dockTabIcon.Offset = new Point(offset.X + center.X - Root.DockIconSize.Width / 2, offset.Y + center.Y - Root.DockIconSize.Height / 2);

            DockIconsLayer dockIconLayer = Root.DockIconsLayer;
            dockIconLayer.AddChild(m_dockLeftIcon);
            dockIconLayer.AddChild(m_dockRightIcon);
            dockIconLayer.AddChild(m_dockTopIcon);
            dockIconLayer.AddChild(m_dockBottomIcon);
            dockIconLayer.AddChild(m_dockTabIcon);
        }
예제 #5
0
파일: DockPanel.cs 프로젝트: sbambach/ATF
 /// <summary>
 /// Function called when dragged window enters 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>
 void IDockable.DockDragEnter(object sender, DockDragDropEventArgs e)
 {
     Point center = new Point(ActualWidth / 2, ActualHeight / 2);
     int space = (int)DockIconSize.Width / 4;
     ResourceDictionary rd = new ResourceDictionary();
     rd.Source = new Uri("/Atf.Gui.Wpf;component/Resources/DockIcons.xaml", UriKind.Relative);
     if (m_dockLeftIcon == null)
     {
         m_dockLeftIcon = new DockIcon((Style)rd["DockLeftIcon"], DockIconSize);
         m_dockRightIcon = new DockIcon((Style)rd["DockRightIcon"], DockIconSize);
         m_dockTopIcon = new DockIcon((Style)rd["DockTopIcon"], DockIconSize);
         m_dockBottomIcon = new DockIcon((Style)rd["DockBottomIcon"], DockIconSize);
         m_dockTabIcon = new DockIcon((Style)rd["DockTabIcon"], DockIconSize);
     }
     m_dockLeftIcon.Offset = new Point(space, center.Y - DockIconSize.Height / 2);
     m_dockRightIcon.Offset = new Point(ActualWidth - DockIconSize.Width - space, center.Y - DockIconSize.Height / 2);
     m_dockTopIcon.Offset = new Point(center.X - DockIconSize.Width / 2, space);
     m_dockBottomIcon.Offset = new Point(center.X - DockIconSize.Width / 2, ActualHeight - DockIconSize.Height - space);
     m_dockTabIcon.Offset = new Point(center.X - DockIconSize.Width / 2, center.Y - DockIconSize.Height / 2);
     if (GridLayout != null)
     {
         //if (GridLayout.Children.Count > 1)
         {
             DockIconsLayer.AddChild(m_dockLeftIcon);
             DockIconsLayer.AddChild(m_dockRightIcon);
             DockIconsLayer.AddChild(m_dockTopIcon);
             DockIconsLayer.AddChild(m_dockBottomIcon);
         }
     }
     else
     {
         DockIconsLayer.AddChild(m_dockTabIcon);
     }
 }