Lukisan Bulatan C# PictureBox: Dua Pendekatan Berkesan
Artikel ini menangani cabaran melukis bulatan dalam PictureBox menggunakan kaedah berasingan dalam C#. Kami akan mengkaji sebab pendekatan biasa gagal dan mengemukakan dua alternatif yang mantap.
Mengapa Kaedah Semasa Anda Mungkin Gagal
Percubaan untuk menggabungkan lukisan langsung pada kawalan PictureBox dengan manipulasi imej dalam kaedah berasingan mewujudkan ketidakkonsistenan. Pendekatan hibrid ini selalunya membawa kepada hasil yang tidak dijangka.
Kaedah 1: Lukisan Terus melalui Acara Paint
Untuk lukisan berterusan secara terus pada PictureBox, manfaatkan acara Paint
. PaintEventArgs
menyediakan objek Graphics
untuk melukis. Kaedah ini sesuai untuk kemas kini dinamik yang terikat terus pada PictureBox.
private void pictureBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); }
Kaedah 2: Melukis ke dalam Imej PictureBox
Sebagai alternatif, lukis pada imej PictureBox itu sendiri. Cipta objek Graphics
daripada pictureBox1.Image
menggunakan Graphics.FromImage
. Lukiskan bentuk anda pada objek Graphics
ini, kemudian panggil pictureBox1.Refresh()
untuk mengemas kini paparan. Pendekatan ini mengekalkan lukisan walaupun PictureBox diubah saiz atau dilukis semula.
void DrawCircleOnImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); // ... other drawing operations ... } pictureBox1.Refresh(); }
Memilih Kaedah yang Betul
Pengendali acara Paint
menawarkan pendekatan langsung, terikat kawalan, sambil melukis ke dalam imej menyediakan penyelesaian yang lebih gigih yang bertahan dalam lukisan semula PictureBox. Pilih kaedah yang paling sesuai dengan keperluan aplikasi anda dan tingkah laku lukisan yang diingini. Kedua-dua kaedah membenarkan penyesuaian dan pengubahsuaian meluas lukisan anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melukis Bulatan dengan Cekap dalam PictureBox Menggunakan Kaedah Luaran dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!