Beispiel #1
0
        public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex)
        {
            if (dockStyle == DockStyle.Fill)
            {
                bool samePane = (Pane == pane);
                if (!samePane)
                {
                    Pane = pane;
                }

                if (contentIndex == -1 || !samePane)
                {
                    pane.SetContentIndex(Content, contentIndex);
                }
                else
                {
                    DockContentCollection contents = pane.Contents;
                    int oldIndex = contents.IndexOf(Content);
                    int newIndex = contentIndex;
                    if (oldIndex < newIndex)
                    {
                        newIndex += 1;
                        if (newIndex > contents.Count - 1)
                        {
                            newIndex = -1;
                        }
                    }
                    pane.SetContentIndex(Content, newIndex);
                }
            }
            else
            {
                DockPane paneFrom = DockPanel.DockPaneFactory.CreateDockPane(Content, pane.DockState, true);
                INestedPanesContainer container = pane.NestedPanesContainer;
                if (dockStyle == DockStyle.Left)
                {
                    paneFrom.DockTo(container, pane, DockAlignment.Left, 0.5);
                }
                else if (dockStyle == DockStyle.Right)
                {
                    paneFrom.DockTo(container, pane, DockAlignment.Right, 0.5);
                }
                else if (dockStyle == DockStyle.Top)
                {
                    paneFrom.DockTo(container, pane, DockAlignment.Top, 0.5);
                }
                else if (dockStyle == DockStyle.Bottom)
                {
                    paneFrom.DockTo(container, pane, DockAlignment.Bottom, 0.5);
                }

                paneFrom.DockState = pane.DockState;
            }
        }
Beispiel #2
0
 public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex)
 {
     checked
     {
         if (dockStyle == DockStyle.Fill)
         {
             bool flag = this.Pane == pane;
             if (!flag)
             {
                 this.Pane = pane;
             }
             if (contentIndex == -1 || !flag)
             {
                 pane.SetContentIndex(this.Content, contentIndex);
             }
             else
             {
                 DockContentCollection contents = pane.Contents;
                 int num  = contents.IndexOf(this.Content);
                 int num2 = contentIndex;
                 if (num < num2)
                 {
                     num2++;
                     if (num2 > contents.Count - 1)
                     {
                         num2 = -1;
                     }
                 }
                 pane.SetContentIndex(this.Content, num2);
             }
         }
         else
         {
             DockPane dockPane = this.DockPanel.DockPaneFactory.CreateDockPane(this.Content, pane.DockState, true);
             INestedPanesContainer nestedPanesContainer = pane.NestedPanesContainer;
             if (dockStyle == DockStyle.Left)
             {
                 dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Left, 0.5);
             }
             else
             {
                 if (dockStyle == DockStyle.Right)
                 {
                     dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Right, 0.5);
                 }
                 else
                 {
                     if (dockStyle == DockStyle.Top)
                     {
                         dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Top, 0.5);
                     }
                     else
                     {
                         if (dockStyle == DockStyle.Bottom)
                         {
                             dockPane.DockTo(nestedPanesContainer, pane, DockAlignment.Bottom, 0.5);
                         }
                     }
                 }
             }
             dockPane.DockState = pane.DockState;
         }
     }
 }