1

私は Java で Swing を使用して同様の作業を少し行いましたが、C# で同じことを試みる必要はありませんでした。簡単にオンラインで見ると、単純な描画ツールの使用方法に関する簡潔なチュートリアルが見つからないようです。誰かが私を良い方向に向けることができますか?

また、サイズが固定されていないカスタム ユーザー コントロールに直線と長方形のボックスを描画しようとしています。これは、Visual Studio UI でコントロールのサイズが変更された場合、新しいコントロールのサイズを考慮して線を再描画する必要があることを意味します。どうすればこれを行うことができますか?

ありがとう

4

2 に答える 2

4

Windows での基本的なグラフィック コントロールについては、GDI+を参照してください。

これはGDI+ に関する C# チュートリアルです。

また

GDI+ のクロス プラットフォーム バージョンについては、Libgdiplusを確認してください。

そして、これで始められるはずです...明らかに、ペイントが呼び出されるたびにオブジェクトで 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 に答える