NDockZone positioning


Author
Message
Greg Wilson
Greg Wilson
Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)
Group: Forum Members
Posts: 2, Visits: 1
I have created a NDockZone that contains a single NDockingPanelHost. If I set the NDocumentManager root zone orientation to vertical my zone and its contents always show up below the document(NUIDocument) and if the orientation is horizontal the zone and its contents always show up to the right of the document(NUIDocument). How can I specify the zone to show up to the left or top depending on the orientation?

example code...

_manager.DocumentStyle.DocumentViewStyle = DocumentViewStyle.SingleDocument;
NUIDocument doc = new NUIDocument();
doc.Client = new NameUC(); // a user control
doc.Client.Dock = DockStyle.Fill;
_manager.DocumentManager.AddDocument(doc);

NDockZone leftZone = new NDockZone(Orientation.Horizontal);
leftZone.SizeInfo.PrefferedSize = new Size(600, 200);
NDockingPanelHost leftPanelHost = new NDockingPanelHost();
leftZone.AddChild(leftPanelHost);

NDockingPanel panel = new NDockingPanel();
panel.Text = "Asset Tree";
panel.Controls.Add(new DockingPanel()); // add a user control
leftPanelHost.AddChild(panel);

// if orientation is vertical zone always displays below the document
//if orientation is horizontal zone always displays to the left
// How do I get the zone to display to the top or left of the document?
_manager.RootContainer.RootZone.Orientation = Orientation.Vertical;
_manager.RootContainer.RootZone.AddChild(leftZone);
Angel Chorbadzhiev
Angel Chorbadzhiev
Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)Supreme Being (142 reputation)
Group: Forum Members
Posts: 139, Visits: 184

Hello Greg,

When you add the NDockZone as a child in the root zone using AddChild method the dock zone was added at the end of the Children collection.

For example if the root zone orientation is horizontal the children will be ordered from left to right by their index in the collection.

To put your zone on left side you have to use the other override of AddChild method where you also have to pass also and the index of your zone in the collection:

_manager.RootContainer.RootZone.AddChild(leftZone, 0);

This way the leftZone will be added on the first position in Children collection and it will be placed in the most left (top) position.

Regards,

Angel Chorbadzhiev


Greg Wilson
Greg Wilson
Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)Forum Newbie (2 reputation)
Group: Forum Members
Posts: 2, Visits: 1
Angel Chorbadzhiev,

Thank you very much.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search