C# LED 矩阵显示
一个 C# 用户控件,以 LED 矩阵屏幕的方式显示文本或符号。
描述
本文介绍了一个 C# 用户控件,以 LED 矩阵屏幕的方式显示文本或符号。该控件管理多个项目,每个项目由其文本、方向和速度定义。本文的目标是描述控件的关键点,而不是严格的技术解释。没有技术难题。该控件在一个应用程序中呈现,允许用户管理两个文本项目。
要点
多显示项目
该控件管理项目列表的显示。一个项目与一个数组相关联,该数组定义了显示器上的 LED “开启” 和位置 (X, Y)。在“PaintEvent”上,分析显示器上的每个 LED,以了解是否有与 LED 对应的项目中的“LedOn”点。
自定义字体文件
为了从文本字符串构建项目的“LedOn”数组,该控件引入了一个转换函数,该函数通过符号代码作为输入来提供 LED On
数组。该函数使用 XML 文件作为从代码到符号的翻译文件。实际上,该控件在项目的资源中引入了一个示例文件。使用的代码是 ASCII 代码。文件中的每个符号都由其行上的 LED “开启” 定义(LED “开启” 由 # 表示)。
<LedMatrixSymbol SymbolCode="71" Description="G">
<LedLine LineNumber="0" LineLedOn="_______"/>
<LedLine LineNumber="1" LineLedOn="__###__"/>
<LedLine LineNumber="2" LineLedOn="_#___#_"/>
<LedLine LineNumber="3" LineLedOn="_#_____"/>
<LedLine LineNumber="4" LineLedOn="_#_____"/>
<LedLine LineNumber="5" LineLedOn="_#__##_"/>
<LedLine LineNumber="6" LineLedOn="_#___#_"/>
<LedLine LineNumber="7" LineLedOn="__###__"/>
</LedMatrixSymbol>
流程修改
每个项目(LED “开启”数组、速度和方向)的属性可以随时更改。显示器的属性(LED 颜色和矩阵大小)也可以修改。
LED 尺寸管理
在代码的第一个版本中,LED 尺寸是通过简单的方式推导出来的。每个 LED 单元格被分成六个相等的部分:1 用于左侧(顶部)边框,4 用于 LED,1 用于右侧(底部)边框。这样,LED 单元格的最小尺寸为 6 像素。
在新版本中,LED 单元格不再分成几个部分。LED 单元格中 LED 直径的部分不再由代码定义(先前版本中为 2/3),而是由一个作为控件新参数的系数定义。因此,边框与 LED 之间的比例可以从 0 到 1 进行设置。