What I would like to do is to reorder the flyout tabs that are shown each the 'AfterPaneButtonClick' event is raised. Flyout tabs on the top would sort with other flyout tabs on the top, left with left, and so on. The idea is to impose an order on the flyout tabs.
Do you have any example code that shows how to do this?
Patrick
Hello Patrick,
I`m not sure that I understand your requirements and final goals, but one possible approach to reposition your panes could be is your are using methods:
- ultraDockManager1.ControlPanes[0].RepositionToPane()
- ultraDockManager1.ControlPanes[0].RepositionToGroup()
If you want to keep always the same layout into your UltraDockManages, you could save and load desired layout using the methods:
- ultraDockManager1.LoadFromXML("..\\..\\Layout.xml");
- ultraDockManager1.SaveAsXML("..\\..\\Layout.xml");
I made small sample for you where I`m using my second suggestion. By this way the user could dock the pane everywhere, but the layout will be always the same. Please take a look at the attached sample and vidoe file and let me know if you think that I misunderstand your question or if you have any further questions.
Regards
Here is the sample
Currently, I use the save/load layout to remember/recall the last layout the user had setup.
The reason I want to be able to programmatically reorder the tabs is because when the user pins and tab, and then un-pins the tab, it takes a new in the tab order. If you have a number of tabs, and you pin one, then getting it back into the original order is a PITA as you have to pin all, and then un-pin in revrese order to get them to display properly.
Draq & drop tabs would fix this. In the meantime, though, I'll setle for a means to programmatically reorder the tabs based on an alpha sort. After the user un-pins a tab, the tabs would be re-sorted so that they appear in the correct order. (as per the sort)
I hope that makes sense, and explains why I would like to do this.
As for the methids,
'.RepositionToPane()' and '.RepositionToGroup()' - I just can't figure out how they work. I've tried using them, and they seem to have o effect. I'm sure they do something, but I haven't found any examples to help me with them.
Hello Pat,
Thanks for your response and sample. Please feel free to write us if you have any questions.
Here's a better version of what I sent before.
I can't detect any flashing in the test casse.
I think this is closed.
Pat
I am sure that the flashing is due tot he unpin/pin loops. I would have expected, though, that suspending the layout would have suppressed this behavior.
Ah, implement the 'IDockingArea.PriorityLevel' - I can make a stab-in-the-dark on this, I guess. Do you have any examples you can refer me to?
It would have been nice if the collection of tabs could have been resorted...
Hello Mchargue,
Thanks for attached sample. Looking at the sample`s code, I think that flickering is due to your loops to Pin and Unpin the panes. I comment this piece of code and I think that everything works properly. I suppose that you are using these loops to determinate the priority of your panes. If I`m right about my guess, maybe you could try to implement IDockingArea.PriorityLevel interface instead of tese two loops.
Let me know if you have any questions.
The only problem I am having with the demo that I posted is that there is a lot of flashing going on when I do the re-sort. This, even though I suspend the layout of the form containing the UltraDockManager control, and suspend the layout of the UltraDockManager control itself. Is there a better way to accomplish this sort that doesn't pin/unpin DockAreaPanes, or a way to minimize the flashing that occurs?
Thanks