WinForm图表控件-柱状图扩展_c#画柱状图的代码-程序员宅基地

技术标签: winform  扩展  border  path  string  02自定义控件  float  

一.扩展说明

  好久没有写Blog了,索性将以前做的柱状图做了下立体效果的扩展,贴出来做为自己懒惰的一种提示。

二.设计时效果

三.运行时效果

四.部分源代码

 private void DrawSolidHistogram(Graphics g)
        {
            Rectangle rect = this.GetClientRect();

            //绘制主标题
            StringFormat sf = new StringFormat();
            sf.Alignment = StringAlignment.Center;
            sf.LineAlignment = StringAlignment.Center;

            using (Font f = new Font("宋体", 12, FontStyle.Bold))
            {
                using (SolidBrush b = new SolidBrush(Color.Black))
                {
                    using (StringFormat sf1 = new StringFormat())
                    {
                        sf1.Alignment = StringAlignment.Center;
                        g.DrawString(_caption, f, b, new Rectangle(rect.Left, rect.Top + 5, rect.Width, _captionHeight), sf1);
                    }
                }
            }
            绘制网格点
            //if (_isShowGridPoint)
            //{
            //    Rectangle rectgrid = rect;
            //    rectgrid.Inflate(0, -_captionHeight);
            //    ControlPaint.DrawGrid(g, rectgrid, new Size(20, 20), Color.Gray);
            //}
            //绘制X轴,Y轴
            using (Pen p = new Pen(Color.Black),p1 = new Pen(Color.LightGray ))
            {
                //x轴
                g.DrawLine(p, _xAxisLeft, rect.Bottom, _xAxisLeft + rect.Width, rect.Bottom);
                //x轴扭曲
                g.DrawLine(p1, _xAxisLeft, rect.Bottom, _xAxisLeft + _xContort, rect.Bottom - _yContort);
                g.DrawLine(p1, _xAxisLeft + rect.Width, rect.Bottom, _xAxisLeft + rect.Width + _xContort, rect.Bottom - _yContort);
                g.DrawLine(p1, _xAxisLeft + _xContort, rect.Bottom - _yContort, _xAxisLeft + rect.Width + _xContort, rect.Bottom - _yContort);
                
                //y轴
                g.DrawLine(p, _xAxisLeft
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/csharp_start/article/details/2504070

智能推荐

ESXi+docker_esxi docker-程序员宅基地

文章浏览阅读1.3w次。文章目录ESXi安装1、ESXi安装:2、重启后的配置:Docker环境部署1、创建虚拟机2、安装完之后,连上xshell,安装docker3、配置容器镜像4、从容器里拉取资源Docker部署Tomcat发布测试1、从容器里拉取资源tomcat2、新建数据库插入数据3、新建maven工程,webapp4、写ssm读数据库5、打war包5、上传到容器里ESXi安装1、ESXi安装:基本上都是下一步,就不做过多介绍了自定义硬件为iso镜像的路径,然后就完成了,重启2、重启后的配置:_esxi docker

ArcGIS RunTime概述_arcgis runtime qt 删除点-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏9次。ArcGIS Runtime 是新一代的轻量级的桌面开发产品,它提供多种API,可以使用WPF,Java等开发环境快速的构建地图应用,并将应用程序部署在Microsoft Windows和Linux等通用平台上。ArcGIS Runtime支持在线和离线的资源调用模式,具有开发简单,部署快速,体验良好等特点,成为云GIS环境下一个不错的选择,将在云GIS环境下扮演重要角色。 ArcGIS_arcgis runtime qt 删除点

FFmpeg指定x265编码器线程数-程序员宅基地

文章浏览阅读4.7k次。转载请注明出处:http://cyc.wiki/index.php/2018/07/17/ffmpeg指定x265编码器线程数/FFmpeg的-threads参数FFmpeg调用编码器时,一般使用-threads参数对编码器使用的线程数进行设置。 比如:ffmpeg -s 1920x1080 -framerate 25 -i input.yuv -c:v libx264 -t..._ffmpeg指定x265编码器线程数

ubuntu查看网速的工具_ubuntu查看网口百兆千兆-程序员宅基地

文章浏览阅读3.4k次。1.工具一:slurm安装sudo apt-get install slurm (Ubuntu系统)查看网速命令slurm -i eth0 (etho为网卡名)*******************************************************************************************************xiabi_ubuntu查看网口百兆千兆

基于OpenCPU方案的BC26 NB模组开发总结-程序员宅基地

文章浏览阅读3.8k次,点赞3次,收藏30次。本文详细分析并介绍了基于opencpu方案开打bc26 NB模组的流程,主要分为开发工具套件的使用以及代码分析。_bc26

关于2022年12代C/C++Linux服务器开发高级架构师课程体系分析_202212.c.c.c-程序员宅基地

文章浏览阅读447次。C/C++Linux服务器高级架构师的课程到2022目前已经迭代到12代了,像之前小编也总结过,但是课程每期都有做一定的更新,也是为了更好的完善课程跟上目前互联网大厂的岗位技术需求,之前课程里面也包含了一些小的分支,其中就有音视频开发、Linux内核开发、DPDK、golang等等一些程序员所需要的硬核技术。今天总结分析是2022年最新的课程体系。_202212.c.c.c

随便推点

centos7安装mysqlclient踩坑记录_mysqlclient.lib gcc-程序员宅基地

文章浏览阅读1.2k次。centos7安装mysqlclient踩坑记录服务器环境为centos7 使用Django3.1部署一个小项目 安装mysqlclient的过程中报错[root@guest download]# pip3.9 install mysqlclientCollecting mysqlclient Using cached mysqlclient-2.0.2.tar.gz (88 kB)Using legacy 'setup.py install' for mysqlclient, since pa_mysqlclient.lib gcc

spring-boot-admin-starter-client与spring-boot版本不匹配的坑_找不到 de.codecentric:spring-boot-admin-starter-serve-程序员宅基地

文章浏览阅读8.8k次。***************************APPLICATION FAILED TO START***************************Description:An attempt was made to call the method org.springframework.boot.web.client.RestTemplateBuilder.setConnectTimeout(Ljava/time/Duration;)Lorg/springframe..._找不到 de.codecentric:spring-boot-admin-starter-server:sources:2.5.2

遍历 ArrayList 时安全删除元素_java arraylist安全删除-程序员宅基地

文章浏览阅读258次。遍历 ArrayList 时安全删除元素_java arraylist安全删除

python基本使用_python使用-程序员宅基地

文章浏览阅读6.8k次。python具有简单、易学、免费、高扩展性等优势在处理IO密集型程序具有得天独厚的优势。python广泛应用于科学计算、人工智能、Web开发,桌面应用等等。其在有numpy、pandas、scipy、sklearn等库的加持下,在数据分析领域里占有重要席位。python属于动态编程语言,其灵活性非常高。我最喜欢他的交互式编程,通过jupyter工具,在数据分析领域里简直是神器一般的存在。本文介绍了python编写代码时经常用到的,比如文件IO操作、JSON处理、时间转换、日志处理等等。........._python使用

Flutter项目实战之Flutter_Gank,7天拿到阿里Android岗位offer-程序员宅基地

文章浏览阅读615次,点赞23次,收藏27次。终于说了一点和标题相关的了,不然有人要说我标题党了,其实做完之后感觉也没什么特色,就列一些用到了哪些知识点吧自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!_flutter项目实战

iframe全屏展示pdf_iframe pdf 像video 一样自动全屏-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏6次。使用iframe显示pdf时,默认会根据浏览器自适应,如果想实现让pdf沾满整个容器宽度,需要设置以下属性<iframe width="100%" :src="PDFsrc+'#view=FitH,top'" frameborder="0" style="width: 100%; height: 100%"></iframe>在src路径后面添加#view=FitH,top默认是自适应,也可手动添加#view=Fit..._iframe pdf 像video 一样自动全屏

推荐文章

热门文章

相关标签