コード例 #1
0
        IEnumerable <IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow)
        {
            if (_dropAreas != null)
            {
                return(_dropAreas);
            }

            _dropAreas = new List <IDropArea>();

            if (draggingWindow.Model is LayoutDocumentFloatingWindow)
            {
                return(_dropAreas);
            }

            if (Content is FloatingWindowContentHost floatingWindowContentHost)
            {
                var rootVisual = floatingWindowContentHost.RootVisual;

                foreach (var areaHost in rootVisual.FindVisualChildren <LayoutAnchorablePaneControl>())
                {
                    _dropAreas.Add(new DropArea <LayoutAnchorablePaneControl>(
                                       areaHost,
                                       DropAreaType.AnchorablePane));
                }
                foreach (var areaHost in rootVisual.FindVisualChildren <LayoutDocumentPaneControl>())
                {
                    _dropAreas.Add(new DropArea <LayoutDocumentPaneControl>(
                                       areaHost,
                                       DropAreaType.DocumentPane));
                }
            }

            return(_dropAreas);
        }
        IEnumerable<IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow)
        {
            if (_dropAreas != null)
                return _dropAreas;
            _dropAreas = new List<IDropArea>();

            if (draggingWindow.Model is LayoutAnchorableFloatingWindow)
                return _dropAreas;

            var floatingWindowContentHost = Content as FloatingWindowContentHost;
            if (floatingWindowContentHost != null)
            {
                var rootVisual = floatingWindowContentHost.RootVisual;

                foreach (var areaHost in rootVisual.FindVisualChildren<LayoutAnchorablePaneControl>())
                {
                    _dropAreas.Add(new DropArea<LayoutAnchorablePaneControl>(
                        areaHost,
                        DropAreaType.AnchorablePane));
                }
                foreach (var areaHost in rootVisual.FindVisualChildren<LayoutDocumentPaneControl>())
                {
                    _dropAreas.Add(new DropArea<LayoutDocumentPaneControl>(
                        areaHost,
                        DropAreaType.DocumentPane));
                }
            }

            return _dropAreas;
        }
コード例 #3
0
        public DragService(LayoutFloatingWindowControl floatingWindow)
        {
            _floatingWindow = floatingWindow;
            _manager = floatingWindow.Model.Root.Manager;

            GetOverlayWindowHosts();
        }
コード例 #4
0
        public DragService(LayoutFloatingWindowControl floatingWindow)
        {
            _floatingWindow = floatingWindow;
            _manager        = floatingWindow.Model.Root.Manager;


            GetOverlayWindowHosts();
        }
コード例 #5
0
        IOverlayWindow IOverlayWindowHost.ShowOverlayWindow(LayoutFloatingWindowControl draggingWindow)
        {
            CreateOverlayWindow();
            _overlayWindow.Owner = draggingWindow;
            _overlayWindow.EnableDropTargets();
            _overlayWindow.Show();

            return(_overlayWindow);
        }
コード例 #6
0
 void IOverlayWindow.DragLeave(LayoutFloatingWindowControl floatingWindow)
 {
     Visibility      = Visibility.Hidden;
     _floatingWindow = null;
 }
コード例 #7
0
 void IOverlayWindow.DragEnter(LayoutFloatingWindowControl floatingWindow)
 {
     _floatingWindow = floatingWindow;
     EnableDropTargets();
 }
        IOverlayWindow IOverlayWindowHost.ShowOverlayWindow(LayoutFloatingWindowControl draggingWindow)
        {
            CreateOverlayWindow();
            _overlayWindow.Owner = draggingWindow;
            _overlayWindow.EnableDropTargets();
            _overlayWindow.Show();

            return _overlayWindow;
        }
コード例 #9
0
 public FloatingWindowContentHost(LayoutFloatingWindowControl owner)
 {
     _owner = owner;
 }
コード例 #10
0
 internal void RemoveFloatingWindow(LayoutFloatingWindowControl floatingWindow)
 {
     _fwList.Remove(floatingWindow);
 }
コード例 #11
0
        IEnumerable<IDropArea> IOverlayWindowHost.GetDropAreas(LayoutFloatingWindowControl draggingWindow)
        {
            if (_areas != null)
                return _areas;

            var isDraggingDocuments = draggingWindow.Model is LayoutDocumentFloatingWindow;

            _areas = new List<IDropArea>();

            if (!isDraggingDocuments)
            {
                _areas.Add(new DropArea<DockingManager>(
                    this,
                    DropAreaType.DockingManager));

                foreach (
                    var areaHost in
                        this.FindVisualChildren<LayoutAnchorablePaneControl>().Where(areaHost => areaHost.Model.Descendents().Any()))
                {
                    _areas.Add(new DropArea<LayoutAnchorablePaneControl>(
                        areaHost,
                        DropAreaType.AnchorablePane));
                }
            }

            foreach (var areaHost in this.FindVisualChildren<LayoutDocumentPaneControl>())
            {
                _areas.Add(new DropArea<LayoutDocumentPaneControl>(
                    areaHost,
                    DropAreaType.DocumentPane));
            }

            foreach (var areaHost in this.FindVisualChildren<LayoutDocumentPaneGroupControl>())
            {
                var documentGroupModel = areaHost.Model as LayoutDocumentPaneGroup;
                if (documentGroupModel != null && !documentGroupModel.Children.Any(c => c.IsVisible))
                {
                    _areas.Add(new DropArea<LayoutDocumentPaneGroupControl>(
                        areaHost,
                        DropAreaType.DocumentPaneGroup));
                }
            }

            return _areas;
        }
コード例 #12
0
 void IOverlayWindow.DragEnter(LayoutFloatingWindowControl floatingWindow)
 {
     _floatingWindow = floatingWindow;
     EnableDropTargets();
 }
コード例 #13
0
 void IOverlayWindow.DragLeave(LayoutFloatingWindowControl floatingWindow)
 {
     Visibility = Visibility.Hidden;
     _floatingWindow = null;
 }
コード例 #14
0
 public FloatingWindowContentHost(LayoutFloatingWindowControl owner)
 {
     _owner = owner;
 }