Anda perlu mengisi gambar dengan warna khusus di suatu tempat. Tampaknya metode Graphics.FillRectangle hanya dapat diisi dengan Brush. Tapi Brush biasa adalah Brush yang ditentukan oleh Brushes, apa yang harus saya lakukan?
Ada dua cara untuk GOOGLE:
1. Isi dengan SolidBrush baru
public void FillByColor(Persegi panjang persegi panjang,Warna c,Grafik G){ G.FillRectangle(new SolidBrush(c), persegi);}
Artikel referensi: "Cara: Membuat Gradien Linier"
2. Gunakan API untuk mengisi area tertutup dengan warna tertentu (tidak diuji)
Terapkan pengisian warna tertentu menggunakan API
menggunakan System.Runtime.InteropServices;[DllImport("gdi32.dll")]public static extern IntPtr SelectObject(IntPtr hdc, IntPtr hgdiobj);[DllImport("gdi32.dll")]public static extern IntPtr CreateSolidBrush(int crColor); [DllImport("gdi32.dll")] bool eksternal statis publik ExtFloodFill(IntPtr hdc, int nXStart, int nYStart, int crColor, uint fuFillType);[DllImport("gdi32.dll")] bool eksternal statis publik DeleteObject(IntPtr hObject );[DllImport("gdi32.dll")]public static extern int GetPixel(IntPtr hdc, int x, int y);public static uint FLOODFILLBORDER = 0;public static uint FLOODFILLSURFACE = 1;private void button1_Click(pengirim objek, EventArgs e){ Grafik vGraphics = Graphics.FromHwnd(Handle); vGraphics.DrawRectangle(Pens.Blue, Rectangle baru(0, 0, 300, 300)); ) , 300)); IntPtr vDC = vGraphics.GetHdc(); IntPtr vBrush = CreateSolidBrush(ColorTranslator.ToWin32(Warna.Merah)); vDC , 10, 10), FLOODFILLSURFACE); SelectObject(vDC, vPreviouseBrush); DeleteObject(vBrush); vGraphics.ReleaseHdc(vDC);}
Artikel referensi: http://www.csharpwin.com/csharpspace/9115r3566.shtml
(Sumber artikel ini: http://www.cnblogs.com/allanswolf/archive/2010/04/22/1718217.html )