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

  • 确定 DockContent 是否处于自动隐藏模式
  • 能够在“常规”和“自动隐藏”模式之间切换。
  • 当 AutoHide Dock 进入视野时触发事件。
  • 当 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 到 DockBottom)
  • 我不知道,但 this 看起来很有趣,可能有这个想法。
  • 我不知道。
  • 最佳答案

    1 是实现此目的的体面方法。该库有一个内部方法 DockHelper.IsDockStateAutoHide() ,它的作用基本相同。这实际上应该成为公共(public)扩展方法并作为库的一部分包含在内。

    2 你的解决方案很好。

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

    随意在 GitHub 上打开一个请求以添加事件。

    关于c# - DockPanelSuite 的 DockState 和 AutoHide,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13848416/

    10-10 07:56