DockHelper.cs
上传用户:szlfmled
上传日期:2020-11-22
资源大小:978k
文件大小:4k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Windows.Forms;
  4. using WeifenLuo.WinFormsUI.Docking;
  5. namespace DockSample.Customization
  6. {
  7. internal class DockHelper
  8. {
  9. public static bool IsDockStateAutoHide(DockState dockState)
  10. {
  11. if (dockState == DockState.DockLeftAutoHide ||
  12. dockState == DockState.DockRightAutoHide ||
  13. dockState == DockState.DockTopAutoHide ||
  14. dockState == DockState.DockBottomAutoHide)
  15. return true;
  16. else
  17. return false;
  18. }
  19. public static bool IsDockStateDocked(DockState dockState)
  20. {
  21. return (dockState == DockState.DockLeft ||
  22. dockState == DockState.DockRight ||
  23. dockState == DockState.DockTop ||
  24. dockState == DockState.DockBottom);
  25. }
  26. public static bool IsDockBottom(DockState dockState)
  27. {
  28. return (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide) ? true : false;
  29. }
  30. public static bool IsDockLeft(DockState dockState)
  31. {
  32. return (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide) ? true : false;
  33. }
  34. public static bool IsDockRight(DockState dockState)
  35. {
  36. return (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide) ? true : false;
  37. }
  38. public static bool IsDockTop(DockState dockState)
  39. {
  40. return (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide ) ? true : false;
  41. }
  42. public static bool IsDockStateValid(DockState dockState, DockAreas dockableAreas)
  43. {
  44. if (((dockableAreas & DockAreas.Float) == 0) &&
  45. (dockState == DockState.Float))
  46. return false;
  47. else if (((dockableAreas & DockAreas.Document) == 0) &&
  48. (dockState == DockState.Document))
  49. return false;
  50. else if (((dockableAreas & DockAreas.DockLeft) == 0) &&
  51. (dockState == DockState.DockLeft || dockState == DockState.DockLeftAutoHide))
  52. return false;
  53. else if (((dockableAreas & DockAreas.DockRight) == 0) &&
  54. (dockState == DockState.DockRight || dockState == DockState.DockRightAutoHide))
  55. return false;
  56. else if (((dockableAreas & DockAreas.DockTop) == 0) &&
  57. (dockState == DockState.DockTop || dockState == DockState.DockTopAutoHide))
  58. return false;
  59. else if (((dockableAreas & DockAreas.DockBottom) == 0) &&
  60. (dockState == DockState.DockBottom || dockState == DockState.DockBottomAutoHide))
  61. return false;
  62. else
  63. return true;
  64. }
  65. public static bool IsDockWindowState(DockState state)
  66. {
  67. if (state == DockState.DockTop || state == DockState.DockBottom || state == DockState.DockLeft ||
  68. state == DockState.DockRight || state == DockState.Document)
  69. return true;
  70. else
  71. return false;
  72. }
  73. public static bool IsValidRestoreState(DockState state)
  74. {
  75. if (state == DockState.DockLeft || state == DockState.DockRight || state == DockState.DockTop ||
  76. state == DockState.DockBottom || state == DockState.Document)
  77. return true;
  78. else
  79. return false;
  80. }
  81. public static DockState ToggleAutoHideState(DockState state)
  82. {
  83. if (state == DockState.DockLeft)
  84. return DockState.DockLeftAutoHide;
  85. else if (state == DockState.DockRight)
  86. return DockState.DockRightAutoHide;
  87. else if (state == DockState.DockTop)
  88. return DockState.DockTopAutoHide;
  89. else if (state == DockState.DockBottom)
  90. return DockState.DockBottomAutoHide;
  91. else if (state == DockState.DockLeftAutoHide)
  92. return DockState.DockLeft;
  93. else if (state == DockState.DockRightAutoHide)
  94. return DockState.DockRight;
  95. else if (state == DockState.DockTopAutoHide)
  96. return DockState.DockTop;
  97. else if (state == DockState.DockBottomAutoHide)
  98. return DockState.DockBottom;
  99. else
  100. return state;
  101. }
  102. }
  103. }