Switch开关按钮控件----------WinForm控件开发系列

本文提供了Switch开关按钮控件的源码下载链接,该控件适用于WinForm应用。文章来源于网络,详细内容可参考原文链接。
摘要由CSDN通过智能技术生成

  /// <summary>
  /// 开关按钮
  /// </summary>
  [ToolboxItem(true)]
  [DefaultProperty("Type")]
  [Description("开关按钮")]
  public partial class SwitchExt : Control
  {
    #region

    private SwitchType type = SwitchType.Flat;
    /// <summary>
    /// 按钮类型
    /// </summary>
    [DefaultValue(SwitchType.Flat)]
    [Description("按钮类型")]
    public SwitchType Type
    {
      get { return this.type; }
      set
      {
        if (this.type == value)
          return;
        this.type = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private int radius = 5;
    /// <summary>
    /// 按钮圆角大小(限于Flat)
    /// </summary>
    [DefaultValue(5)]
    [Description("按钮圆角大小(限于Flat)")]
    public int Radius
    {
      get { return this.radius; }
      set
      {
        if (this.radius == value)
          return;
        this.radius = value;
        if (this.Type == SwitchType.Flat)
        {
          this.InitializeSwitchLayout();
          this.Invalidate();
        }
      }
    }

    private Color backdropColor = Color.FromArgb(245, 165, 166);
    /// <summary>
    /// 背景颜色
    /// </summary>
    [DefaultValue(typeof(Color), "245, 165, 166")]
    [Description("背景颜色")]
    [Editor(typeof(ColorEditorExt), typeof(System.Drawing.Design.UITypeEditor))]
    public Color BackdropColor
    {
      get { return this.backdropColor; }
      set
      {
        if (this.backdropColor == value)
          return;
        this.backdropColor = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private Color backdropSelectColor = Color.FromArgb(167, 204, 233);
    /// <summary>
    /// 选中时背景颜色
    /// </summary>
    [DefaultValue(typeof(Color), "167, 204, 233")]
    [Description("选中时背景颜色")]
    [Editor(typeof(ColorEditorExt), typeof(System.Drawing.Design.UITypeEditor))]
    public Color BackdropSelectColor
    {
      get { return this.backdropSelectColor; }
      set
      {
        if (this.backdropSelectColor == value)
          return;
        this.backdropSelectColor = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private Color backdropBorderColor = Color.FromArgb(245, 165, 166);
    /// <summary>
    /// 背景边框颜色
    /// </summary>
    [DefaultValue(typeof(Color), "245, 165, 166")]
    [Description("背景边框颜色")]
    [Editor(typeof(ColorEditorExt), typeof(System.Drawing.Design.UITypeEditor))]
    public Color BackdropBorderColor
    {
      get { return this.backdropBorderColor; }
      set
      {
        if (this.backdropBorderColor == value)
          return;
        this.backdropBorderColor = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private int backdropBorderThickness = 0;
    /// <summary>
    /// 背景边框画笔大小
    /// </summary>
    [DefaultValue(0)]
    [Description("背景边框画笔大小")]
    public int BackdropBorderThickness
    {
      get { return this.backdropBorderThickness; }
      set
      {
        if (this.backdropBorderThickness == value || value < 0)
          return;
        this.backdropBorderThickness = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private Color slideColor = Color.FromArgb(255, 255, 255);
    /// <summary>
    /// 滑块颜色
    /// </summary>
    [DefaultValue(typeof(Color), "255, 255, 255")]
    [Description("滑块颜色")]
    [Editor(typeof(ColorEditorExt), typeof(System.Drawing.Design.UITypeEditor))]
    public Color SlideColor
    {
      get { return this.slideColor; }
      set
      {
        if (this.slideColor == value)
          return;
        this.slideColor = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private Color slideSelectColor = Color.FromArgb(255, 255, 255);
    /// <summary>
    /// 选中时滑块颜色
    /// </summary>
    [DefaultValue(typeof(Color), "255, 255, 255")]
    [Description("选中时滑块颜色")]
    [Editor(typeof(ColorEditorExt), typeof(System.Drawing.Design.UITypeEditor))]
    public Color SlideSelectColor
    {
      get { return this.slideSelectColor; }
      set
      {
        if (this.slideSelectColor == value)
          return;
        this.slideSelectColor = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private Color slideBorderColor = Color.FromArgb(255, 255, 255);
    /// <summary>
    /// 滑块边框颜色
    /// </summary>
    [DefaultValue(typeof(Color), "255, 255, 255")]
    [Description("滑块边框颜色")]
    [Editor(typeof(ColorEditorExt), typeof(System.Drawing.Design.UITypeEditor))]
    public Color SlideBorderColor
    {
      get { return this.slideBorderColor; }
      set
      {
        if (this.slideBorderColor == value)
          return;
        this.slideBorderColor = value;
        this.InitializeSwitchLayout();
        this.Invalidate();
      }
    }

    private int slideBorderThickness = 0;
    /// <summary>
    /// 滑块边框画笔大小
    /// 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值