我是想做一个可以设置边框颜色和宽度的Label控件,现在已经OK,
但是有个奇怪的问题,
把边框宽度设为单数的时候,图1的"h1"和"w1"两条边比"h2"和"w2"宽一个像素。
把边框宽度设为偶数的时候,四条边就一样宽了。
百思不得其解,难不成在设置边框宽度的时候必须设置为偶数吧?
高人请指点,不懂的也帮我顶一顶,谢啦。图1:
w1
_____________
h1| |h2
|_____________|
w2
我的代码摘录:
protected override void OnPaint(PaintEventArgs pe)
{
Graphics g = pe.Graphics;
base.OnPaint(pe); //clorborColor=边框色,从属性中取得;intBorWid=边框宽度,从属性中取得
Pen linePen = new Pen(clorborColor,intBorWid);
Point p1 = new Point(0,0);
Point p2 = new Point(this.Width,0);
Point p3 = new Point(0,this.Height);
Point p4 = new Point(this.Width,this.Height); g.DrawLine(linePen , p1 , p2);
g.DrawLine(linePen , p1 , p3);
g.DrawLine(linePen , p4 , p2);
g.DrawLine(linePen , p4 , p3);
}
但是有个奇怪的问题,
把边框宽度设为单数的时候,图1的"h1"和"w1"两条边比"h2"和"w2"宽一个像素。
把边框宽度设为偶数的时候,四条边就一样宽了。
百思不得其解,难不成在设置边框宽度的时候必须设置为偶数吧?
高人请指点,不懂的也帮我顶一顶,谢啦。图1:
w1
_____________
h1| |h2
|_____________|
w2
我的代码摘录:
protected override void OnPaint(PaintEventArgs pe)
{
Graphics g = pe.Graphics;
base.OnPaint(pe); //clorborColor=边框色,从属性中取得;intBorWid=边框宽度,从属性中取得
Pen linePen = new Pen(clorborColor,intBorWid);
Point p1 = new Point(0,0);
Point p2 = new Point(this.Width,0);
Point p3 = new Point(0,this.Height);
Point p4 = new Point(this.Width,this.Height); g.DrawLine(linePen , p1 , p2);
g.DrawLine(linePen , p1 , p3);
g.DrawLine(linePen , p4 , p2);
g.DrawLine(linePen , p4 , p3);
}
{
…………//起始点的取值
}