首页 > 其他分享 >Winform-自定义按钮_播放图标

Winform-自定义按钮_播放图标

时间:2023-04-11 21:33:36浏览次数:36  
标签:sb 自定义 System Height pointFs new using Winform 图标

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management.Instrumentation;

namespace MyContrl
{
    /// <summary>
    /// 播放按钮
    /// </summary>
    public partial class PlayButton : ToolStripButton
    {

        protected override void OnPaint(PaintEventArgs pevent)
        {
            base.OnPaint(pevent);

            Graphics g = pevent.Graphics;
            g.SmoothingMode = SmoothingMode.AntiAlias;  // 抗锯齿,使边缘平滑

            SolidBrush sb = new SolidBrush(Color.Red);  // 默认红色

            RectangleF rect = new RectangleF(5, 4, (this.Height / 2) + 2, (this.Height / 2) + 2);  // 圆或方形

            List<PointF> pointFs = new List<PointF>();
            pointFs.Add(new PointF(6,5));
            pointFs.Add(new PointF(6, this.Height-5));
            pointFs.Add(new PointF((this.Height / 2)+4, this.Height / 2));

            // 填充控件内部
            if (this.Tag != null && this.Tag.ToString().Contains("1"))  // 1为绿
            {
                sb =  new SolidBrush(Color.Red);
                g.FillRectangle(sb, rect);
            }
            else if (this.Tag != null && this.Tag.ToString().Contains("2"))  // 1为红/黄
            {
                sb = new SolidBrush(Color.Green);
                g.FillPolygon(sb, pointFs.ToArray());
            }
            else
            {
                sb = new SolidBrush(Color.Green);
                g.FillPolygon(sb, pointFs.ToArray());
            }
        }
    }
}

标签:sb,自定义,System,Height,pointFs,new,using,Winform,图标
From: https://www.cnblogs.com/qq2806933146xiaobai/p/17307826.html

相关文章

  • 实现自定义接口以及嵌套类的应用
    interfaceCityNumber{//定义两个接口intgetNumber();}interfaceDestination{StringgetName();}publicclassMain{publicclassCitysimplementsCityNumber{//嵌套的内部类1privateintid=518;@OverridepublicintgetNum......
  • 学习笔记396—自定义Docker镜像推送到Docker Hub实战
    自定义Docker镜像推送到DockerHub实战云原生探索的必经之路—容器化,而容器化目前最主流的技术莫过于Docker了,因为之前也大量的输出过Docker相关的技术博客,如果感兴趣的话可以直接访问专栏:​​《探索云原生》​​,按需学习哦。这篇文章还是从Docker入手,从0开始讲述下如何将自己的D......
  • AIGC教程:如何使用Stable Diffusion生成风格化游戏物品和图标
    GameLook报道/随着生成型AI的能力提升,越来越多的开发者开始尝试用StableDiffusion提升自己的研发效率。在RPG游戏的制作当中,数量庞大的游戏内物品是非常耗时且费力的部分,装备、道具、药剂等物品可能数以千计,从概念设计到最终放到游戏里的资源,可能耗费很长时间和......
  • vue3使用elmentui-plus中的图标
    按照官网这样直接引入使用,不知道为啥行不通:import{Document,MenuasIconMenu,Location,Setting,}from'@element-plus/icons-vue'使用时,需要<script>import{UserFilled}from'@element-plus/icons-vue'//使用的时候需要单独引入这个图标从......
  • Power BI里面常见的图标
      数值列:列值是数字    日期列:列值是日期 计算列(数字):添加的计算列,列值是数字   计算列(非数字):添加的计算列,列值不是数字    字段的层次结构:比如日期字段,就可以分成年、季度、月、日展示 文件夹:字段的分组,可以将一个/多个列或者度量......
  • 通过网页打开winform程序
    winform页面代码:///<summary>///注册表的写入///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidtsmiWriteRegister_Cli......
  • c#之winform—listview中排序 和 ICompare接口和IComparer接口的比较
    要在listview中实现排序,需要用listview.Sorting属性,它接受一个枚举类型的值list_view.Sorting=SortOrder.Ascending;//1为正序>其中None=0,//不排序Ascending=1,//升序Descending=2//降序然后在将ListViewItemComparer这个类的实例......
  • 自定义SpringBoot Starter
    1.Starter加载原理Springboot通过SpringBootApplication注解启动项目,springboot启动的时候,会将项目中所有声明为bean对象的实例加载到IOC容器。除此之外也会将starter里的bean信息加载到ioc容器,从而做到0配置,开箱即用。1.1加载starter:Springboot项目启动时,Springboot通过@Spri......
  • 自定义指令之光标定位到输入框
    下面是一个自定义指令的例子,当一个input元素被Vue插入到DOM中后,它会被自动聚焦。解决方案:在input标签里增加ref属性,然后在exportdefault中增加构子函数mounted(挂载完成),写入以下代码,表示页面渲染完成后光标定位输入框。mounted(){    this.$nextTick(()=......
  • winform程序在不同操作系统下的兼容问题
    建议用.netframework3.5作为生成目标,CPU设置为any来开发,然后在app.config文件里加上<?xmlversion="1.0"encoding="utf-8"?><configuration><startupuseLegacyV2RuntimeActivationPolicy="true"><supportedRuntimeversi......