giovedì 21 ottobre 2010

C# Come disegnare del testo in un'immagine

In caso di particolari customizzazioni dei controlli di tipo Button, può capitare di dovere sostituire il componente Button con un PictureEdit al fine di generare dei pulsanti grafici. In questo caso se a codice è necessaria l'assegnazione di un'immagine o in assenza di quest'ultima un testo standard, è possibile procedere come segue:

Nell'assegnazione dell'immagine al PictureEdit andiamo a generare una Bitmap contenente il Testo del nuovo pulsante grafico.


private Bitmap GetImageBitmapByDescription(string descrizione, int width, int height)
{
    // specifiche per la formattazione del testo nel pulsante 
    StringFormat strFormat = new StringFormat();
    strFormat.Alignment = StringAlignment.Center;
    strFormat.LineAlignment = StringAlignment.Center;

    // definizione della bitmap da restituire
    Bitmap myBitmap = new Bitmap(width,height);
    Graphics g = Graphics.FromImage(myBitmap);
    g.DrawString(descrizione, new Font("Tahoma", 10, FontStyle.Regular), Brushes.DarkSlateGray,
                         new RectangleF(0, 0, width, height), strFormat);
    return myBitmap;
}

Richiamando la funzione sopraindicata, sarà possibile assegnare un testo al pulsante da generare, specificando le dimensioni dell'elemento grafico da agganciare al picture.

PictureEdit imgButton = new PictureEdit( )
imgButton.Image = GetImageBitmapByDescription(cc.Descrizione, 200, 80 );

0 commenti:

Posta un commento