Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melukis dengan Cekap pada PictureBox Menggunakan Kaedah Berasingan dalam C#?
Lukisan C# PictureBox: teknik cekap menggunakan kaedah bebas
Dalam aplikasi bentuk C#, anda boleh melukis grafik tersuai pada kawalan PictureBox. Walau bagaimanapun, pengguna mungkin menghadapi masalah apabila cuba melakukan ini melalui kaedah yang berasingan.
Soalan:
Seorang pengguna mungkin ingin mencipta kaedah untuk melukis bulatan dengan mudah pada PictureBox, tetapi mendapati kaedah ini tidak menghasilkan hasil yang diharapkan. Kaedah masalah memulakan peta bit, objek grafik dan berus yang digunakan untuk melukis bulatan. Walau bagaimanapun, apabila dipanggil dalam pengendali acara Paint PictureBox, ia gagal melukis bulatan dengan betul.
Penyelesaian:
Untuk menggunakan kaedah berasingan secara berkesan untuk melukis pada PictureBox, adalah penting untuk menjelaskan sama ada matlamatnya adalah untuk melukis dalam imej yang dipaparkan oleh PictureBox, atau secara langsung dalam kawalan itu sendiri.
Kaedah 1: Lukis terus pada kawalan
Untuk melukis terus pada kawalan (tanpa menjejaskan imej), gunakan pengendali acara Paint PictureBox seperti berikut:
<code class="language-csharp">private void pictureBox2_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44)); }</code>
Dalam kes ini, lukisan adalah berterusan dan grafik terikat pada kawalan, berikutan sebarang saiz semula atau pergerakan kawalan.
Kaedah 2: Melukis dalam imej
Untuk melukis pada imej yang dipaparkan oleh PictureBox, cipta kaedah berasingan dan lukis menggunakan objek Grafik yang diperoleh daripada sifat Imej PictureBox.
<code class="language-csharp">void drawIntoImage() { using (Graphics G = Graphics.FromImage(pictureBox1.Image)) { G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44)); } pictureBox1.Refresh(); }</code>
Selepas lukisan selesai, panggil kaedah Segar() PictureBox untuk mengemas kini paparan. Dalam kes ini, bentuk itu kekal pada imej dan akan dipengaruhi oleh sebarang penskalaan atau transformasi imej.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melukis dengan Cekap pada PictureBox Menggunakan Kaedah Berasingan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!