I've noticed that the autohide behavior is different between the Win and WPF versions of the Dock Manager. In the WinForms version, if I click on a control outside of an unpinned content pane, the content pane will autohide (fly in). This does not seem to be the case in the WPF version. If I have a Content Pane that has focus, but is unpinned, if I click on a control outside of the content pane, it will not auto hide. In fact, I can't seem to make it auto hide unless I toggle on the pin of the content pane. Is there any way for me to change the auto hide behavior of the WPF XamDockManager to work the same way as the UltraWinDock version?
Actually in both cases if the unpinned pane is active (i.e. it has the input focus) then clicking somewhere else in the application would not necessarily cause the flyout to close. That would only happen if you gave focus to something else. I suspect that in the winforms case you were clicking on a control that took focus (e.g. usercontrol, textbox, etc.) but in this case you're not clicking on something that takes the keyboard focus. If it is taking the keyboard focus and still not closing then please submit a sample that demonstrates the issue and we can look into it further.
Also want clarification on "keyboard focus". I am clicking on another control (say a button) outside of the content pane using the mouse. Does this constitute keyboard focus as well?
Hi Julie, i have the same issue with my application. All the panes auto hides except the one with Tab Control which has two tab items in it and the tab items has grid with couple of rows and columns.
Please help if you have found a solution to this or a way around.
Thanks.
Hello Akarsha,
For the unpinned pane it has to lose focus for it to fly in. That includes controls that are inside the pane, if one of them has focus it will keep the pane open. You can make it lose focus by click on something outside the pane. If you want to do it without clicking you could handle the MouseLeave event of the content pane and set focus to something else in code:
private void ContentPane_MouseLeave(object sender, MouseEventArgs e) { Button1.Focus(); }