Ejemplo n.º 1
0
        public IDockDocument ShowDocument(string name, CreateDockDocumentDelegate createDockCallback)
        {
            IDockDocument doc       = null;
            var           avalonDoc = FindAvalonDocument(name);

            if (avalonDoc == null)
            {
                if (String.CompareOrdinal(name, "startPage") != 0 && StartPageDockDocument.GlobalAutoClose)
                {
                    StartPageDockDocument.GlobalAutoClose = false;
                    CloseDocument("startPage");
                }

                avalonDoc = new DocumentContent()
                {
                    Name = name
                };
                doc = createDockCallback(avalonDoc, name);

                BindingExtensions.CreateBinding(doc, "DocumentTitle", avalonDoc, DocumentContent.TitleProperty, BindingMode.OneWay);

                avalonDoc.Content = doc;

                avalonDoc.Closing += AvalonDoc_Closing;
                avalonDoc.Closed  += AvalonDoc_Closed;
            }

            avalonDoc.Show(dockingManager, false);

            Dispatcher.BeginInvoke(new NoArgsDelegate(() => { avalonDoc.Manager.ActiveDocument = avalonDoc; }), null);

            return(doc);
        }
Ejemplo n.º 2
0
        public IDockPane ShowPane(string name, CreateDockPaneDelegate createDockPane)
        {
            IDockPane pane       = null;
            var       avalonPane = FindAvalonPane(name);

            if (avalonPane == null)
            {
                avalonPane = new DockableContent()
                {
                    Name = name
                };
                pane = createDockPane(avalonPane, name);

                BindingExtensions.CreateBinding(pane, "PaneTitle", avalonPane, DockableContent.TitleProperty, BindingMode.OneWay);

                avalonPane.Content = pane;

                avalonPane.Closing += AvalonPane_Closing;
                avalonPane.Closed  += AvalonPane_Closed;

                AnchorStyle anchor = AnchorStyle.None;
                switch (pane.DefaultPaneLocation)
                {
                case PaneLocation.Left:
                    anchor = AnchorStyle.Left;
                    break;

                case PaneLocation.Right:
                    anchor = AnchorStyle.Right;
                    break;

                case PaneLocation.Top:
                    anchor = AnchorStyle.Top;
                    break;

                case PaneLocation.Bottom:
                    anchor = AnchorStyle.Bottom;
                    break;
                }

                avalonPane.HideOnClose = pane.HidePaneOnClose;
                avalonPane.Show(dockingManager, anchor);
            }
            else
            {
                avalonPane.Show();
            }

            Dispatcher.BeginInvoke(new NoArgsDelegate(() => { avalonPane.Manager.ActiveDocument = avalonPane; }), null);

            return(pane);
        }