常州plc培训

常州PLC编程培训

常州和讯自动化培训中心欢迎您!
当前位置:网站首页 > 技术资料 技术资料
实现思路-常州机器视觉培训,常州工业机器人培训,常州电工培训
日期:2023/5/17 11:11:43人气:  标签:常州机器视觉培训 常州工业机器人培训 常州电工培训

实现思路

C#想要实现7段数码管显示,一般会有两种思路,一种是GDI+,通过代码绘制的方式来实现,今天,给大家介绍另外一种简单而又方便的方式,那就是通过设置字体,提前做好一个7段码的字体,在电脑中安装好即可,当然字体也可以用现成的,这里给大家提供一个线程的7段码字体,公众号回复关键词:7SEG


使用也很简单,就是拖放一个Label标签到界面上,然后设置字体选择为7SEG,设置合适的字体大小即可。

44.5.png

使用7SEG字体,前提要安装这个字体,安装也很简单,双击下载的7SEG.ttf即可。


最终呈现的效果如下所示:

44.6.png

这个提及一下项目应用,如果我们开发好项目,把程序放到其他电脑上使用,由于其他电脑没有安装7SEG的字体,效果肯定会不一样。


一种方法就是提前手动安装好字体,然后再运行程序,但是也没有其他好的方法呢?


也许你们也想到了,就是通过代码自动完成,思路就是检测字体是否存在,存在则继续,不存在则通过代码安装字体。


所以首先需要第一个方法,检测某个字体是否存在,方法如下:


        ///

        /// 检测某种字体样式是否可用

        ///

        ///字体名称

        ///字体样式

        ///

        private bool CheckFont(string familyName, FontStyle fontStyle = FontStyle.Regular)

        {

            InstalledFontCollection installedFontCollection = new InstalledFontCollection();

            FontFamily[] fontFamilies = installedFontCollection.Families;

            foreach (var item in fontFamilies)

            {

                if (item.Name.Equals(familyName))

                {

                    return item.IsStyleAvailable(fontStyle);

                }

            }

            return false;

        }

大林上位机机器视觉_常州电工培训_常州PLC培训_常州上位机培训_常州机器视觉培训_常州工业机器人培训_最适合电工及plc编程人员学习的上位机机器视觉课程 大林老师:15861139266(微信同号)

有了这个方法之后,还需要另外一个方法就是安装字体,安装字体需要提供字体的路径,代码如下:


        ///

        /// 安装字体

        ///

        ///字体文件全路径

        ///是否成功安装字体

        ///不是管理员运行程序

        ///字体安装失败

        private bool InstallFont(string fontFilePath)

        {

            try

            {

                System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();

                System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);

                //判断当前登录用户是否为管理员

                if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator) == false)

                {

                    throw new UnauthorizedAccessException("当前用户无管理员权限,无法安装字体");

                }

                //获取Windows字体文件夹路径

                string fontPath = Path.Combine(System.Environment.GetEnvironmentVariable("WINDIR"), "fonts", Path.GetFileName(fontFilePath));

                //检测系统是否已安装该字体

                if (!File.Exists(fontPath))

                {                 

                    //将某路径下的字体拷贝到系统字体文件夹下

                    File.Copy(fontFilePath, fontPath); //font是程序目录下放字体的文件夹

                    AddFontResource(fontPath);

                    //安装字体

                    WriteProfileString("fonts", Path.GetFileNameWithoutExtension(fontFilePath) + "(TrueType)", Path.GetFileName(fontFilePath));

                }

            }

            catch (Exception ex)

            {

                return false;

            }

            return true;

        }


最终在项目运行初始化里执行如下代码:


           if (!CheckFont("7SEG"))

            {

                if (InstallFont(FontPath))

                {

                    MessageBox.Show("字体安装成功,重启生效!", "字体安装");

                }

                else

                {

                    MessageBox.Show("字体安装失败!", "字体安装");

                }

            }

其中FontPath是字体文件的路径,一般可以提前方法根目录下。这样即使是没有安装字体的电脑,也可以直接正常显示了。




本文网址:

相关信息:
版权所有 CopyRight 2006-2013 常州和讯自动化培训中心 电话:0519-85602926 地址:常州市新北区府琛商务广场2号楼1409室
《中华人民共和国电信与信息服务业务经营许可证》 编号:苏ICP证1312012312号 网站统计 技术支持:常州山水网络
本站关键词:常州plc培训 常州PLC编程培训网站地图 网站标签
在线与我们取得联系