C#在窗体上绘制绘制
时间: 2024-09-18 22:09:13 浏览: 36
在C#中,要在窗体上绘制图形,通常会利用`Paint`事件或直接操作`Control`的`Graphics`属性。下面是一个简单的例子,展示了如何在Form控件上创建并绘制一条直线:
```csharp
using System;
using System.Windows.Forms;
using System.Drawing;
public partial class Form1 : Form
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e); // 先执行基类的 Paint 事件,获取 Graphics 对象
// 创建画刷
Pen pen = new Pen(Color.Black, 2); // 黑色线条,宽度2px
// 绘制一条从左上角到右下角的直线
int x = 10; // 初始x坐标
int y = 10; // 初始y坐标
int width = Width - 20; // 线条宽度等于窗体宽度减去一些余量
int height = Height - 20; // 线条高度等于窗体高度减去一些余量
e.Graphics.DrawLine(pen, x, y, x + width, y + height);
// 清理资源
pen.Dispose();
}
}
相关问题
c#在窗体中完成六角形的绘制
您可以通过使用C#中的Graphics类来绘制六边形。以下是一个简单的示例代码:
```csharp
private void Form1_Paint(object sender, PaintEventArgs e)
{
Point[] points = new Point[6];
int radius = 50;
int centerX = this.Width / 2;
int centerY = this.Height / 2;
// 计算六边形的顶点坐标
for (int i = 0; i < 6; i++)
{
double angleDeg = 60 * i - 30;
double angleRad = Math.PI / 180 * angleDeg;
int x = (int)(centerX + radius * Math.Cos(angleRad));
int y = (int)(centerY + radius * Math.Sin(angleRad));
points[i] = new Point(x, y);
}
// 使用Graphics类绘制六边形
Graphics g = e.Graphics;
g.DrawPolygon(Pens.Black, points);
}
```
在窗体的Paint事件中调用此方法即可绘制六边形。注意,此代码只绘制一个不带填充的六边形,您可以使用Graphics类的其他方法来实现更高级的绘制效果。
C#在百度地图上绘制线
要在百度地图上绘制线,可以使用百度地图API提供的Polyline类。以下是一个简单的C#代码示例:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BMap.NET.WindowsForm;
namespace BMap.NET.Samples
{
class Program
{
static void Main(string[] args)
{
// 创建地图控件
BMapControl map = new BMapControl();
map.Dock = System.Windows.Forms.DockStyle.Fill;
map.BringToFront();
// 添加地图控件到窗体
System.Windows.Forms.Form form = new System.Windows.Forms.Form();
form.Text = "BMap.NET Samples";
form.WindowState = System.Windows.Forms.FormWindowState.Maximized;
form.Controls.Add(map);
form.Show();
// 创建线路坐标点集合
List<BMap.NET.WindowsForm.PointLatLng> points = new List<BMap.NET.WindowsForm.PointLatLng>();
points.Add(new BMap.NET.WindowsForm.PointLatLng(39.915, 116.404));
points.Add(new BMap.NET.WindowsForm.PointLatLng(39.925, 116.454));
points.Add(new BMap.NET.WindowsForm.PointLatLng(39.935, 116.494));
// 创建线路对象
BMap.NET.WindowsForm.Polyline polyline = new BMap.NET.WindowsForm.Polyline();
polyline.Points = points;
polyline.StrokeColor = System.Drawing.Color.Red;
polyline.StrokeWidth = 5;
// 添加线路到地图
map.Overlays.Add(polyline);
}
}
}
```
需要注意的是,代码中使用了BMap.NET库来简化地图API的调用,需要先安装该库。另外,需要替换代码中的AK值为自己的百度地图API Key。
阅读全文