示例#1
0
        public void Close(IDockScreen screen)
        {
            var content = this[screen.Name];

            if (content != null)
            {
                content.Close();
            }
        }
示例#2
0
        private void ShowDocumentWindow(IDockScreen viewModel, bool activate = true)
        {
            var document = GetDocument(viewModel);

            document.Show(_dockingManager);
            if (activate)
            {
                document.Activate();
            }
        }
示例#3
0
        private void ShowFloatingWindow(IDockScreen viewModel, bool activate = true)
        {
            var dockableContent = GetDockable(viewModel);

            dockableContent.ShowAsFloatingWindow(_dockingManager, true);
            if (activate)
            {
                dockableContent.Activate();
            }
        }
示例#4
0
        private DocumentContent GetDocument(IDockScreen rootModel)
        {
            //see if the dockable exists
            var existingView = _dockingManager.Documents.FirstOrDefault(dc => dc.DataContext == rootModel);

            if (existingView != null)
            {
                return(existingView);
            }

            var view = ViewLocator.LocateForModel(rootModel, null, DockType.Document);

            ViewModelBinder.Bind(rootModel, view, DockType.Document);

            return(view as DocumentContent);
        }
示例#5
0
        private void ShowDockedWindow(IDockScreen viewModel,
                                      bool activate     = true,
                                      DockSide dockSide = DockSide.Left)
        {
            var dockableContent = GetDockable(viewModel);

            dockableContent.Show(_dockingManager, GetAnchorStyle(dockSide));
            if (activate)
            {
                dockableContent.Activate();
            }
            else
            {
                dockableContent.ToggleAutoHide();
            }
        }
示例#6
0
        public void Show(IDockScreen screen, DockType?dockType, bool activate, DockSide dockSide)
        {
            DockType type = dockType.HasValue ? dockType.Value : screen.Type;

            switch (type)
            {
            case DockType.Document:
                ShowDocumentWindow(screen, activate);
                break;

            case DockType.DockableContent:
                ShowDockedWindow(screen, activate, dockSide);
                break;

            case DockType.Floating:
                ShowFloatingWindow(screen, activate);
                break;

            default:
                break;
            }
        }