我在 Java 中使用 Swing 做过一些类似的工作,但从来没有必要尝试在 C# 中做同样的事情。在网上简单看了一下,我似乎找不到任何关于如何使用简单绘图工具的简洁教程。谁能指出我一个好的方向?
此外,我希望在大小不固定的自定义用户控件上绘制直线和矩形框。这意味着当在 Visual Studio UI 中调整控件的大小时,它需要相应地重新绘制线条以考虑新的控件尺寸。我该怎么做呢?
谢谢
查看GDI+以了解 Windows 上的基本图形控制。
或者
查看Libgdiplus以获得 GDI+ 的跨平台版本
这应该让你开始......显然你不想在每次调用paint时都在你的对象上调用new......但你明白了。
public partial class Form1 : Form
{
Graphics g = null;
public Form1()
{
InitializeComponent();
g = Graphics.FromHwnd(Handle);
}
private void Form1_Load(object sender, EventArgs e)
{
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Brush b = new SolidBrush(Color.Black);
Pen pen = new Pen(b, 20.5f);
Point p1 = new Point(0, 0);
Point p2 = new Point(this.Width, this.Height);
g.DrawLine(pen, p1, p2);
}
}
下面的代码将绘制一个矩形并将其显示在图片框中。您可以连接一个事件来检测调整大小,然后重绘矩形。
Graphics GR;
Bitmap BM;
Rectangle myrect = new Rectangle(10,10,10,10);
Pen penTest = new System.Drawing.Pen(Brushes.Red);
using (GR = Graphics.FromImage(BM))
{
GR.DrawRectangle(penTest, myrect);
}
picturebox1.Image = BM;