/ / C # prekreslenie grafiky na winform - c #, winform, bitmapa

C # prekreslenie grafiky na winform - c #, winform, bitmapa

Mám bitmapu načítanú na winform cez imagebox. Keď chcem aktualizovať obrázok, ktorý skúsim takto:

imagebox.image = null;
draw();  //implements the drawing of the bitmap and assigns to the imagebox/winform

Bude to však fungovať iba vtedy, keď sa skryjem a potom znova zobrazí formulár? Ako sa k tomu dostanem?

EDIT: Problém bol vyriešený.

odpovede:

1 pre odpoveď č. 1

Urobte si nastavovač vlastností obrazu múdrejší. Napríklad:

private Image mImage;

public Image Image {
get { return mImage; }
set {
mImage = value;
Invalidate();
}
}

Teraz sa viditeľný obraz automaticky obnoví.


1 pre odpoveď č. 2

Skúšali ste volať Invalidate(imagebox.Bounds); na konci draw() metóda?

To by malo vynútiť prekreslenie, takže sa nemusíte skryť a zobraziť formulár znova.


1 pre odpoveď č. 3

Mali by ste sa pozrieť na tento odkaz Bob Powell GDI + FAQ, Je tu niekoľko jasných pokynov pre niektoré základy GDI, tento odkaz ide na príklad kreslenia PictureBox.

V podstate chcete byť pripojení k udalosti Skicár pre ImageBox a volať Invalidate () vždy, keď chcete re-draw.