MyUiLabel.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Model;
  2. using Permission;
  3. using Sunny.UI;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. public class MyUiLabel : UILabel, IPermissionControl
  11. {
  12. [Category("MyControl")]
  13. [Description("控件要求的权限等级")]
  14. [Browsable(true)]
  15. [DefaultValue(PermissionLevel.操作工)]
  16. public PermissionLevel RequiredPermissionLevel { get => requiredPermissionLevel; set { requiredPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } }
  17. private PermissionLevel requiredPermissionLevel = PermissionLevel.操作工;
  18. [Category("MyControl")]
  19. [Description("当前登录的权限")]
  20. [Browsable(false)]
  21. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  22. public PermissionLevel CurrentPermissionLevel { get => currentPermissionLevel; set { currentPermissionLevel = value; IsPermissionGot = currentPermissionLevel >= RequiredPermissionLevel; HandlePermissionChange(); } }
  23. private PermissionLevel currentPermissionLevel = PermissionLevel.无权限;
  24. [Category("MyControl")]
  25. [Description("控件是否获得了权限")]
  26. [Browsable(false)]
  27. [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
  28. public bool IsPermissionGot { get; private set; }
  29. protected virtual void HandlePermissionChange()
  30. {
  31. this.Enabled = IsPermissionGot;
  32. }
  33. }