csharp画多边形
时间: 2024-11-19 19:13:29 浏览: 4
在C#中,绘制多边形通常需要借助Windows Presentation Foundation (WPF) 或者.NET Framework中的System.Drawing命名空间提供的功能。如果你想要在Windows Forms应用程序中绘制,可以使用Graphics类;如果是在WPF中,则会更倾向于使用DrawingVisual和DrawingContext。
以下是使用System.Drawing的基本示例,假设你想在一个PictureBox或Control上绘制一个矩形作为多边形:
```csharp
using System.Drawing;
using System.Windows.Forms;
public void DrawPolygon(Graphics g)
{
// 创建一个多边形点数组
Point[] polygonPoints = { new Point(50, 50), new Point(150, 50), new Point(200, 100), new Point(150, 150) };
// 设置填充颜色
Brush brush = new SolidBrush(Color.Red);
// 绘制多边形
g.FillPolygon(brush, polygonPoints);
}
// 调用函数并传入Graphics对象
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
DrawPolygon(e.Graphics);
}
```
如果你在WPF环境下,可以创建`DrawingVisual`并在它的`DrawingContext`上操作,例如:
```csharp
using System.Windows.Media;
using System.Windows.Media.DrawingVisuals;
// ...
public DrawingVisual CreatePolygonVisual(PointCollection polygonPoints)
{
var drawingVisual = new DrawingVisual();
using (var context = drawingVisual.RenderOpen())
{
var geometry = new GeometryFigure(
new PolygonGeometry(polygonPoints),
null,
null
);
context.DrawGeometry(Brushes.Red, null, geometry);
}
return drawingVisual;
}
// 在适当的时候添加到UI元素上
DrawingGroup group = new DrawingGroup();
group.Children.Add(CreatePolygonVisual(new PointCollection {...}));
myCanvas.Children.Add(group);
```
阅读全文