程序开发 > C# > Winform > 正文

C# 画 Winform Panel边框的两种方法(ControlPaint.DrawBorder)

亮术网 2014-03-05 本网原创

  在 Web 开发中,一般用 div 布局,而在 Winform 中,Panel控件就像 div 一样,也是用来布局界面。Winform 中的控件默认边框都不是十分美观,如果想设计漂亮的界面,可以重绘控件的边框,通常重绘得比较多的是 Panel 的边框,所以文章将以重绘 Panel边框为例说明重绘Winform控件边框的方法。

  在 C# 中,重绘 Winform Panel边框,既可以覆盖原来的边框,也可以保留再画出一条边框形成凹凸效果。重绘所用的类和方法为 ControlPaint.DrawBorder,有两种重绘方法,下面分别介绍。

?

  一、Winform Panel边框方法一:每边能设置不同的颜色、宽度和样式

  1、拖一个 Panel控件到主窗体中,保持默认名称 panel1,BorderStyle 选择 Fixed3D。

  2、双击 Panel1,打开后台代码文件,在 panel1_Paint(object sender, PaintEventArgs e) 方法中添加如下代码:

  private void panel1_Paint(object sender, PaintEventArgs e)
  {
    ControlPaint.DrawBorder(e.Graphics, panel1.ClientRectangle,
     Color.White, 1, ButtonBorderStyle.Solid, //左边
     Color.White, 1, ButtonBorderStyle.Solid, //上边
     Color.DimGray, 1, ButtonBorderStyle.Solid, //右边
     Color.DimGray, 1, ButtonBorderStyle.Solid);//底边
  }

  每边共有三个参数,分别为:边框颜色、宽度和样式;如果把 1 改为 0,则覆盖原来的边框,否则颜色搭配得当将出现凹凸边框效果,示例运行效果如图1所示:

C# Winform边框(ControlPaint.DrawBorder)

图1

  如果 BorderStyle 选择 None,则又是另外一种效果(边框内突起)。

?

?

  二、Winform Panel边框方法二:每边样式一样

  步骤跟方法一一样,只是在 panel1_Paint(object sender, PaintEventArgs e) 方法中添加如下代码:

  private void panel1_Paint(object sender, PaintEventArgs e)
  {
     ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.Ivory, ButtonBorderStyle.Solid);
  }

  每边都设置为同一风格,即相同的颜色、宽度和样式。

本文浓缩标签:WinformPanel边框