在 .NET、C# 中绘制形状的形状线问题
我想画一个有方形、菱形、十字形的形状。方形线条扎实、细腻。然而,菱形和十字形的线看起来都像虚线或点线。我希望所有形状都有实线。
有什么想法吗?
下面是代码和形状:
http://www.sendspace.com/file/n3wljs
private void CreateVariousShapes()
{
Bitmap bitmap = new Bitmap(17, 17);
Graphics graphics = Graphics.FromImage(bitmap);
Pen pen = new Pen(Color.Black);
pen.Width = 1;
pen.DashStyle = DashStyle.Solid;
Brush brush = new SolidBrush(Color.White);
//graphics.FillRectangle(brush, 0, 0, 16, 16);
//graphics.DrawRectangle(pen, 0, 0, 16, 16);
FillDiamond(brush, graphics);
DrawDiamond(pen, graphics);
DrawCross(pen, graphics);
//bitmap.Save(MapPath("SquareDiamondCross.png"),ImageFormat.Png);
//bitmap.Save(MapPath("SquareCross.png"), ImageFormat.Png);
//bitmap.Save(MapPath("SquareDiamond.png"), ImageFormat.Png);
bitmap.Save(MapPath("DiamondCross.png"), ImageFormat.Png);
}
private void FillDiamond(Brush brush, Graphics graphics)
{
Point[] points = new Point[]
{ new Point(0,8),
new Point(8,16),
new Point(16,8),
new Point(8,0),
};
graphics.FillPolygon(brush, points);
}
private void DrawDiamond(Pen pen, Graphics graphics)
{
Point[] points = new Point[]
{ new Point(0,8),
new Point(8,16),
new Point(16,8),
new Point(8,0),
};
graphics.DrawPolygon(pen, points);
}
private void DrawCross(Pen pen, Graphics graphics)
{
graphics.DrawLine(pen, 4, 2, 2, 4);
graphics.DrawLine(pen, 2, 12, 4, 14);
graphics.DrawLine(pen, 12, 14, 14, 12);
graphics.DrawLine(pen, 12, 2, 14, 4);
graphics.DrawLine(pen, 2, 4, 6, 8);
graphics.DrawLine(pen, 2, 12, 6, 8);
graphics.DrawLine(pen, 4, 14, 8, 10);
graphics.DrawLine(pen, 12, 14, 8, 10);
graphics.DrawLine(pen, 14, 12, 10, 8);
graphics.DrawLine(pen, 14, 4, 10, 8);
graphics.DrawLine(pen, 12, 2, 8, 6);
graphics.DrawLine(pen, 4, 2, 8, 6);
}
I want to draw a shape with square, diamond, and cross shape. The square line is solid, and fine. However, the line of both diamond and cross look like dashed or dotted. I want all shapes have solid line.
Any ideas?
Below is the code, and shapes:
http://www.sendspace.com/file/n3wljs
private void CreateVariousShapes()
{
Bitmap bitmap = new Bitmap(17, 17);
Graphics graphics = Graphics.FromImage(bitmap);
Pen pen = new Pen(Color.Black);
pen.Width = 1;
pen.DashStyle = DashStyle.Solid;
Brush brush = new SolidBrush(Color.White);
//graphics.FillRectangle(brush, 0, 0, 16, 16);
//graphics.DrawRectangle(pen, 0, 0, 16, 16);
FillDiamond(brush, graphics);
DrawDiamond(pen, graphics);
DrawCross(pen, graphics);
//bitmap.Save(MapPath("SquareDiamondCross.png"),ImageFormat.Png);
//bitmap.Save(MapPath("SquareCross.png"), ImageFormat.Png);
//bitmap.Save(MapPath("SquareDiamond.png"), ImageFormat.Png);
bitmap.Save(MapPath("DiamondCross.png"), ImageFormat.Png);
}
private void FillDiamond(Brush brush, Graphics graphics)
{
Point[] points = new Point[]
{ new Point(0,8),
new Point(8,16),
new Point(16,8),
new Point(8,0),
};
graphics.FillPolygon(brush, points);
}
private void DrawDiamond(Pen pen, Graphics graphics)
{
Point[] points = new Point[]
{ new Point(0,8),
new Point(8,16),
new Point(16,8),
new Point(8,0),
};
graphics.DrawPolygon(pen, points);
}
private void DrawCross(Pen pen, Graphics graphics)
{
graphics.DrawLine(pen, 4, 2, 2, 4);
graphics.DrawLine(pen, 2, 12, 4, 14);
graphics.DrawLine(pen, 12, 14, 14, 12);
graphics.DrawLine(pen, 12, 2, 14, 4);
graphics.DrawLine(pen, 2, 4, 6, 8);
graphics.DrawLine(pen, 2, 12, 6, 8);
graphics.DrawLine(pen, 4, 14, 8, 10);
graphics.DrawLine(pen, 12, 14, 8, 10);
graphics.DrawLine(pen, 14, 12, 10, 8);
graphics.DrawLine(pen, 14, 4, 10, 8);
graphics.DrawLine(pen, 12, 2, 8, 6);
graphics.DrawLine(pen, 4, 2, 8, 6);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
设置以下图形属性:
希望您能得到您想要的。
Set the following graphics properties:
Hopefully you will get what you want.