Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melukis dengan Cekap pada PictureBox Menggunakan Kaedah Berasingan dalam C#?

Bagaimanakah Saya Boleh Melukis dengan Cekap pada PictureBox Menggunakan Kaedah Berasingan dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-21 11:21:10542semak imbas

How Can I Efficiently Draw on a PictureBox Using a Separate Method in 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn