DockPanelSuite's DockState и AutoHide
Работая с DockState и AutoHide, я ищу следующие вещи:
- Узнайте, находится ли DockContent в режиме AutoHide
- Возможность переключения между "обычным" и автоматическим режимом.
- Инициируйте событие, когда появится док-панель AutoHide.
- Инициируйте событие, когда док AutoHide "ушел" и теперь пристыкован обратно на свою вкладку.
Ответ Вики:
IsAutoHide - получить:
private WeifenLuo.WinFormsUI.Docking.DockState[] AutoHideStates = new WeifenLuo.WinFormsUI.Docking.DockState[] { WeifenLuo.WinFormsUI.Docking.DockState.DockBottomAutoHide, WeifenLuo.WinFormsUI.Docking.DockState.DockLeftAutoHide, WeifenLuo.WinFormsUI.Docking.DockState.DockRightAutoHide, WeifenLuo.WinFormsUI.Docking.DockState.DockTopAutoHide }; public bool IsAutoHide { get { return AutoHideStates.Contains(DockContent.DockState); } }
IsAutoHide - установить: кода пока нет - в основном перебирайте режимы или используйте словарь взаимозаменяемых режимов (т.е. DockBottomAutoHide to DockBottom)
Я понятия не имею, но это выглядит интересно, возможно, есть идея.
- Я понятия не имею.
1 ответ
1 - достойный способ сделать это. В библиотеке есть внутренний метод, DockHelper.IsDockStateAutoHide()
это в основном то же самое. Это должно быть на самом деле сделано в публичном методе расширения и включено как часть библиотеки.
2 Ваше решение хорошо.
3 и 4, вероятно, лучше всего реализовать в качестве нового события в DockPanel
: ActiveAutoHideContentChanged
, Затем вы можете самостоятельно отслеживать последнее содержимое автоматического скрытия, и когда возникает событие, вы знаете, что #3 происходит, если новое значение не равно NULL, и #4 происходит, если последнее известное значение не было NULL.
Не стесняйтесь открыть запрос на GitHub, чтобы добавить событие.