1

我在 Java 中使用 Swing 做过一些类似的工作,但从来没有必要尝试在 C# 中做同样的事情。在网上简单看了一下,我似乎找不到任何关于如何使用简单绘图工具的简洁教程。谁能指出我一个好的方向?

此外,我希望在大小不固定的自定义用户控件上绘制直线和矩形框。这意味着当在 Visual Studio UI 中调整控件的大小时,它需要相应地重新绘制线条以考虑新的控件尺寸。我该怎么做呢?

谢谢

4

2 回答 2

4

查看GDI+以了解 Windows 上的基本图形控制。

这是关于 GDI+ 的 C# 教程

或者

查看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);
    }


}
于 2012-11-21T02:20:37.470 回答
4

下面的代码将绘制一个矩形并将其显示在图片框中。您可以连接一个事件来检测调整大小,然后重绘矩形。

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;
于 2012-11-21T02:26:22.240 回答