2009-10-02 4 views

Répondre

4

Pouvez-vous modifier les images avant de les mettre dans le ImageList? Disons que vous vouliez ajouter une bordure noire de 4px à l'image - vous pouvez y parvenir avec une méthode d'extension:

/// <summary> 
/// Add a border to an image 
/// </summary> 
/// <param name="srcImg"></param> 
/// <param name="color">The color of the border</param> 
/// <param name="width">The width of the border</param> 
/// <returns></returns> 
public static Image AddBorder(this Image srcImg, Color color, int width) 
{ 
    // Create a copy of the image and graphics context 
    Image dstImg = srcImg.Clone() as Image; 
    Graphics g = Graphics.FromImage(dstImg); 

    // Create the pen 
    Pen pBorder = new Pen(color, width) 
    { 
     Alignment = PenAlignment.Center 
    }; 

    // Draw 
    g.DrawRectangle(pBorder, 0, 0, dstImg.Width, dstImg.Height); 

    // Clean up 
    pBorder.Dispose(); 
    g.Save(); 
    g.Dispose(); 

    // Return 
    return dstImg; 
} 

Ensuite, il suffit d'ajouter les images résultantes à votre ImageList avec quelque chose de similaire à:

ImageList1.Images.Add(myImage.AddBorder(Color.Black, 4)); 
+0

merci beaucoup M.Dan – user178222

+0

+1 exactement ce que j'allais suggérer. – Ian

Questions connexes