OneDData.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. 
  2. using System;
  3. namespace Dongke.WinForm.Controls.InvoiceLayout.DrawBarcode.OneD
  4. {
  5. /// <summary>
  6. /// 一维码格式数据
  7. /// </summary>
  8. [Serializable]
  9. public sealed class OneDData
  10. {
  11. /// <summary>
  12. /// 获取坐标元素
  13. /// </summary>
  14. public bool this[int index]
  15. {
  16. get => Data[index];
  17. set => Data[index] = value;
  18. }
  19. /// <summary>
  20. /// 数组
  21. /// </summary>
  22. public bool[] Data
  23. {
  24. get;
  25. }
  26. /// <summary>
  27. /// 条码数据长度
  28. /// </summary>
  29. public int Size => Data?.Length ?? 0;
  30. /// <summary>
  31. /// 设定宽度
  32. /// </summary>
  33. public int Width
  34. {
  35. get;
  36. internal set;
  37. }
  38. /// <summary>
  39. /// 设定高度
  40. /// </summary>
  41. public int Height
  42. {
  43. get;
  44. internal set;
  45. }
  46. /// <summary>
  47. /// 条码内容
  48. /// </summary>
  49. public string Text
  50. {
  51. get;
  52. internal set;
  53. }
  54. /// <summary>
  55. /// 一维码格式
  56. /// </summary>
  57. public OneDFormat Format
  58. {
  59. get;
  60. internal set;
  61. }
  62. /// <summary>
  63. /// 一维码数据
  64. /// </summary>
  65. /// <param name="size">尺寸</param>
  66. internal OneDData(int size)
  67. {
  68. Data = new bool[size];
  69. }
  70. /// <summary>
  71. /// 一维码数据
  72. /// </summary>
  73. /// <param name="data">数据</param>
  74. /// <param name="text">文本</param>
  75. internal OneDData(bool[] data, string text)
  76. {
  77. Data = data;
  78. Text = text;
  79. }
  80. /// <summary>
  81. /// 设置全部值
  82. /// </summary>
  83. /// <param name="value">The value.</param>
  84. public void SetAllValue(bool value)
  85. {
  86. for (int i = 0; i < Size; i++)
  87. {
  88. Data[i] = value;
  89. }
  90. }
  91. }
  92. }