public SetContentIndex ( IDockContent content, int index ) : void | ||
content | IDockContent | |
index | int | |
return | void |
public void SetContentIndex(IDockContent content, int index)
{
int oldIndex = this.Contents.IndexOf(content);
if (oldIndex == -1)
throw (new ArgumentException(Strings.DockPane_SetContentIndex_InvalidContent));
if (index < 0 || index > this.Contents.Count - 1)
if (index != -1)
throw (new ArgumentOutOfRangeException(Strings.DockPane_SetContentIndex_InvalidIndex));
if (oldIndex == index)
return;
if (oldIndex == this.Contents.Count - 1 && index == -1)
return;
this.Contents.Remove(content);
if (index == -1)
this.Contents.Add(content);
else if (oldIndex < index)
this.Contents.AddAt(content, index - 1);
else
this.Contents.AddAt(content, index);
this.RefreshChanges();
}
public void DockTo(DockPane pane, DockStyle dockStyle, int contentIndex) { if (dockStyle == DockStyle.Fill) { IDockContent activeContent = this.ActiveContent; for (int i = this.Contents.Count - 1; i >= 0; i--) { IDockContent c = this.Contents[i]; if (c.DockHandler.DockState == this.DockState) { c.DockHandler.Pane = pane; if (contentIndex != -1) pane.SetContentIndex(c, contentIndex); } } pane.ActiveContent = activeContent; } else { if (dockStyle == DockStyle.Left) this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Left, 0.5); else if (dockStyle == DockStyle.Right) this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Right, 0.5); else if (dockStyle == DockStyle.Top) this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Top, 0.5); else if (dockStyle == DockStyle.Bottom) this.DockTo(pane.NestedPanesContainer, pane, DockAlignment.Bottom, 0.5); this.DockState = pane.DockState; } }