【问题标题】:DockPanelSuite's DockState and AutoHideDockPanelSuite 的 DockState 和 AutoHide
【发布时间】:2012-12-12 20:52:46
【问题描述】:

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

  1. 查看 DockContent 是否处于自动隐藏模式
  2. 能够在“常规”和自动隐藏模式之间切换。
  3. 当 AutoHide Dock 进入视野时触发事件。
  4. 当 AutoHide 停靠栏“离开”并且现在停靠回其选项卡时触发事件。

回答维基:

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

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

  4. 我不知道。

【问题讨论】:

  • 不知道是什么让这个问题降级了,请评论。
  • 下次你可能会直接来GitHub的问题跟踪器,github.com/dockpanelsuite/dockpanelsuite/issues?state=open
  • 我试过去那里,但那里似乎没有一个“标准”论坛,只有问题跟踪器,我不想打开一个问题,直到我确定它是一个。这个地方(SO)是一个完美的知识分享场所。
  • 你误解了GitHub上issues的含义。看看那里存在的问题,可以看到欢迎各种讨论。

标签: c# winforms dockpanel-suite


【解决方案1】:

1 是实现此目的的一种不错的方法。该库有一个内部方法DockHelper.IsDockStateAutoHide(),它的作用基本相同。这实际上应该被制成一个公共扩展方法,并作为库的一部分。

2 你的解决方案很好。

3 和 4 可能最好在 DockPanel:ActiveAutoHideContentChanged 中作为新事件实现。然后,您可以自行跟踪最后一个自动隐藏内容,当引发事件时,如果新值不为空,则您知道 #3 正在发生,如果最后一个已知值不为空,则 #4 正在发生。

请随时在 GitHub 上提出请求以添加活动。

【讨论】:

  • 感谢您的建议,我已经尝试过让您的生活更轻松一些,并且(经过短暂的学习曲线)在 github 项目中输入了 pull request
猜你喜欢
  • 2015-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-02
相关资源
最近更新 更多