DockPanelSuite的DockState和AutoHide

时间:2012-12-12 20:52:46

标签: c# winforms dockpanel-suite

使用DockState和AutoHide,我正在寻找以下内容:

  1. 确定DockContent是否处于自动隐藏模式
  2. 能够在“常规”和“自动隐藏”模式之间切换。
  3. 当AutoHide底座进入视图时触发事件。
  4. 当AutoHide底座“离开”并且现在停靠在其选项卡中时触发事件。
  5. 回答Wiki:

    1. IsAutoHide - get:

      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); } }
      
    2. IsAutoHide - 设置: 还没有代码 - 基本上遍历模式或使用可互换模式的字典(即DockBottomAutoHide到DockBottom)

    3. 我不知道,但this看起来很有趣,可能有这个想法。

    4. 我不知道。

1 个答案:

答案 0 :(得分:2)

1是实现这一目标的好方法。该库有一个内部方法,DockHelper.IsDockStateAutoHide()基本上做同样的事情。实际上,这应该是一个公共扩展方法,并作为库的一部分包含在内。

2你的解决方案很好。

3& 4可能最好在DockPanelActiveAutoHideContentChanged中作为新事件实施。然后,您可以自己跟踪上一个自动隐藏内容,当事件发生时,您知道如果新值不为空,则发生#3,如果最后一个已知值不为空,则发生#4。

随意在GitHub上打开请求以添加活动。