在主页面绘制矩形
在Windows Forms(WinForms)应用程序中,使用 Graphics 类来绘制图形时,默认坐标系的原点 (0,0) 位于绘图表面的左上角。这意味着当你指定一个矩形的位置时,该矩形的左上角坐标是相对于这个原点的。因此,默认情况下,当你定义一个矩形并指定其 Y 和 Height 值时,矩形将会从顶部开始向下绘制。
从顶部开始绘制
using System.Drawing;
using System.Windows.Forms;
namespace GDI_
{
public partial class Form8 : Form
{
public Form8()
{
InitializeComponent();
}
//从顶部开始绘图
private void Form8_Paint(object sender, PaintEventArgs e)
{
// 绘图区域的高度
int height = 500;
// 矩形的高度
int recHeight = 300;
// 顶部到矩形顶部的偏移量
int padding_Y = 20;
// 计算矩形的Y位置,从顶部开始绘制
int recY = padding_Y;
// 创建矩形
Rectangle rectFromTop = new Rectangle(10, recY, 100, recHeight);
// 使用Graphics对象绘制矩形
using (Graphics g = this.CreateGraphics())
{
g.DrawRectangle(Pens.Black, rectFromTop);
}
}
}
}
显示效果
从底部开始绘制
using System.Drawing;
using System.Windows.Forms;
namespace GDI_
{
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
}
//从底部开始绘制
private void Form7_Paint(object sender, PaintEventArgs e)
{
// 绘图区域的高度
int height = 400;
// 矩形的高度
int recHeight = 300;
// 假设有一个顶部到绘图区域底部的偏移量
int padding_Y = 20;
// 计算矩形的Y位置,使得矩形底部对齐于绘图区域底部
int recY = height - padding_Y - recHeight;
// 创建矩形
Rectangle rectFromBottom = new Rectangle(10, recY, 100, recHeight);
// 使用Graphics对象绘制矩形
using (Graphics g = this.CreateGraphics())
{
g.DrawRectangle(Pens.Black, rectFromBottom);
}
}
}
}
显示效果
在PictureBox空间里绘制矩形
当你在一个 PictureBox 控件中绘制图形时,PictureBox 内部的绘图区域的坐标系统原点 (0,0) 默认是在控件的左上角。这意味着任何你在 PictureBox 中绘制的内容都会从这个左上角开始绘制。
从顶部开始绘制
using System.Drawing
using System.Windows.Forms;
namespace GDI_
{
public partial class Form8 : Form
{
public Form8()
{
InitializeComponent();
}
//从顶部开始绘图
private void Form8_Paint(object sender, PaintEventArgs e)
{
Bitmap img = new Bitmap(500, 400);
// 绘图区域的高度
int height = 500;
// 矩形的高度
int recHeight = 300;
// 顶部到矩形顶部的偏移量
int padding_Y = 20;
// 计算矩形的Y位置,从顶部开始绘制
int recY = padding_Y;
// 创建矩形
Rectangle rectFromTop = new Rectangle(10, recY, 100, recHeight);
// 使用Graphics对象绘制矩形
using (Graphics g = Graphics.FromImage(img))
{
g.DrawRectangle(Pens.Black, rectFromTop);
}
pictureBox1.Image = img;
}
}
}
效果显示。外面的框是picture的区域,里面的框是华东矩形。
从底部开始绘制
using System.Drawing;
using System.Windows.Forms;
namespace GDI_
{
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
}
//从底部开始绘制
private void Form7_Paint(object sender, PaintEventArgs e)
{
Bitmap img = new Bitmap(500, 400);
// 绘图区域的高度
int height = 400;
// 矩形的高度
int recHeight = 300;
// 假设有一个顶部到绘图区域底部的偏移量
int padding_Y = 20;
// 计算矩形的Y位置,使得矩形底部对齐于绘图区域底部
int recY = height - padding_Y - recHeight;
// 创建矩形
Rectangle rectFromBottom = new Rectangle(10, recY, 100, recHeight);
// 使用Graphics对象绘制矩形
using (Graphics g = Graphics.FromImage(img))
{
g.DrawRectangle(Pens.Black, rectFromBottom);
}
pictureBox1.Image = img;
}
}
}
显示效果,外面是picturebox的范围,里面是画的矩形。