Vous devez remplir l'image avec une couleur personnalisée quelque part. Il semble que la méthode Graphics.FillRectangle ne puisse être remplie qu'avec Brush. Mais le Brush standard est le Brush défini par Brushes, que dois-je faire ?
Il existe deux manières d'accéder à GOOGLE :
1. Remplissez avec le nouveau SolidBrush
public void FillByColor(Rectangle rect,Color c,Graphics G){ G.FillRectangle(new SolidBrush(c), rect);}
Article de référence : « Comment : créer un dégradé linéaire »
2. Utilisez l'API pour remplir une zone fermée avec la couleur spécifiée (non testée)
Implémenter le remplissage de couleur spécifié à l'aide de l'API
en utilisant 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")]public static extern bool ExtFloodFill(IntPtr hdc, int nXStart, int nYStart, int crColor, uint fuFillType);[DllImport("gdi32.dll")]public static extern bool 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(objet expéditeur, EventArgs e){ Graphiques vGraphics = Graphics.FromHwnd(Handle); vGraphics.DrawRectangle(Pens.Blue, nouveau Rectangle(0, 0, 300, 300)); vGraphics.DrawRectangle(Pens.Blue, nouveau Rectangle(50, 70, 300) ), 300)); IntPtr vDC = vGraphics.GetHdc(); IntPtr vBrush = CreateSolidBrush(ColorTranslator.ToWin32(Color.Red)); IntPtr vPreviouseBrush = SelectObject(vDC, vBrush); vDC, 10, 10), FLOODFILLSURFACE); SelectObject(vDC, vPreviouseBrush);
Article de référence : http://www.csharpwin.com/csharpspace/9115r3566.shtml
(Source de cet article : http://www.cnblogs.com/allanswolf/archive/2010/04/22/1718217.html )