在WM中画个带有边框的Panel


想在ppc上类似的带有边框的Panel(美观嘛),可惜WM自带的Panel有没有这项属性,于是自己继承封装了一个,很简单滴

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;

namespace DrawPanel
{
    
public class DrawPanel:Panel
    
{
        
protected override void OnPaint(PaintEventArgs e)
        
{
            
base.OnPaint(e);
            Graphics g 
= e.Graphics;
            Pen pen 
= new Pen(_borderColor, _borderWidth);
            pen.DashStyle 
= _borderDashStyle;
            g.DrawRectangle(pen,e.ClipRectangle.X,e.ClipRectangle.Y, e.ClipRectangle.Width
-1, e.ClipRectangle.Height-1);   
        }


        Color _borderColor 
= Color.Black;
        
/// <summary>
        
/// 获取或设置边框颜色
        
/// </summary>

        public virtual Color BorderColor
        
{
            
get return _borderColor; }
            
set { _borderColor=value ; }
        }


        
float _borderWidth = 1f;
        
/// <summary>
        
/// 获取或设置边框的宽度
        
/// </summary>

        public virtual float BorderWidth
        
{
            
get return _borderWidth; }
            
set { _borderWidth=value; }
        }


        DashStyle _borderDashStyle 
= DashStyle.Solid;
        
/// <summary>
        
/// 获取或设置边框的样式
        
/// </summary>

        public DashStyle BorderDashStyle {
            
get return _borderDashStyle; }
            
set { _borderDashStyle=value; }
        }

    }

}

原文地址:https://www.cnblogs.com/qiba78/p/1233149.html