/// <summary>
        /// Start drag routine
        /// </summary>
        /// <param name="wnd">Floating window to managed</param>
        /// <param name="point">Current mouse position</param>
        /// <param name="offset">Offset to be use to set floating window screen position</param>
        public void StartDrag(FloatingWindow wnd, Point point, Point offset)
        {
            _wnd    = wnd;
            _offset = offset;

            if (_wnd.Width <= _offset.X)
            {
                _offset.X = _wnd.Width / 2;
            }

            _wnd.Left = point.X - _offset.X;
            _wnd.Top  = point.Y - _offset.Y;
            if (!_wnd.IsActive)
            {
                _wnd.Show();
            }

            foreach (IDropSurface surface in _surfaces)
            {
                if (surface.SurfaceRectangle.Contains(point))
                {
                    _surfacesWithDragOver.Add(surface);
                    surface.OnDragEnter(point);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Show this content
        /// </summary>
        /// <param name="dock">New dock border</param>
        /// <remarks>Show this content in a dockable pane. If no pane was previuosly created, it creates a new one with passed initial dock. </remarks>
        private void _Show(Dock dock)
        {
            FloatingWindow window = _GetRelatedFloatingWnd();

            if (null != window)
            {
                window.Show();
            }
            else
            {
                ContainerPane.UseSpecAllocation = true;
                ContainerPane.Show(dock);
            }

            FireVisibileStateChanged();
        }
        /// <summary>
        /// Start drag routine
        /// </summary>
        /// <param name="wnd">Floating window to managed</param>
        /// <param name="point">Current mouse position</param>
        /// <param name="offset">Offset to be use to set floating window screen position</param>
        public void StartDrag(FloatingWindow wnd, Point point, Point offset)
        {
            _wnd = wnd;
            _offset = offset;

            if (_wnd.Width <= _offset.X)
                _offset.X = _wnd.Width / 2;

            _wnd.Left = point.X - _offset.X;
            _wnd.Top = point.Y - _offset.Y;
            if (!_wnd.IsActive)
                _wnd.Show();

            foreach (IDropSurface surface in _surfaces)
            {
                if (surface.SurfaceRectangle.Contains(point))
                {
                    _surfacesWithDragOver.Add(surface);
                    surface.OnDragEnter(point);
                }
            }
        }