mmuyu 发表于 2023-9-12 22:51:54

c# 美化数据开关控件

    虽然c#的label标签,和button按钮可以用于显示设备的状态,也是比较简单的方式就能完成的,但是这样的界面看起来还是简陋了一点。例如灯光显示控件。



像这种界面,虽然数据是很直观显示了,但是界面还有待美化,因此我们可以使用图片来显示数据的状态,这样看起来会更美观一点。

下面我们看看如何操作:


首先我们要准备用于显示的图片素材,我们可以到阿里巴巴的矢量素材库获取图标www.iconfont.cn,例如灯亮灯灭的,我们可以找到很多素材。


需要注意图标的版权**

接下来,我们在c#里面新建一个资源文件夹,用于保存图片状态。



然后我们创建4个picture box 用于显示图片,并且设置控件的大小模式为自动缩放



接下来,我们对获取的json数据的attr内的数据点数据进行比对,如果是1则为亮灯状态,此时我们应该把图片切换为亮灯的图片,我们可以通过 Image.FromFile,使用相对路径的方式应用项目内的文件。

代码如下:

if ((int)jsonobject["attr"]["LED_OnOff_1"] == 1)
                            {
                              pictureBox1.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light _on.png");
                            }
                            else
                            {
                              pictureBox1.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light_off.png");
                            }
                            if ((int)jsonobject["attr"]["LED_OnOff_2"] == 1)
                            {
                              pictureBox2.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light _on.png");
                            }
                            else
                            {
                              pictureBox2.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light_off.png");
                            }
                            if ((int)jsonobject["attr"]["LED_OnOff_3"] == 1)
                            {
                              pictureBox3.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light _on.png");
                            }
                            else
                            {
                              pictureBox3.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light_off.png");
                            }
                            if ((int)jsonobject["attr"]["LED_OnOff_4"] == 1)
                            {
                              pictureBox4.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light _on.png");
                            }
                            else
                            {
                              pictureBox4.Image = Image.FromFile(Application.StartupPath + "..\\..\\..\\resources\\light_off.png");
                            }这里为了方便程序查找目录,使用Application.StartupPath 读取程序所在的文件夹,再配合相对路径组成完整的文件路径


接下来编译运行看一看结果



可以看见正常显示了,相对于文字还是美观了许多,并且app修改设备数据后,能实时显示到页面上
页: [1]
查看完整版本: c# 美化数据开关控件