| Aedi Dea |
Gestione dei disegni in una PictureBox
Ciao a tutti, qualcuno sa dirmi come impedire che i disegni creati in una PictureBox tramite Graphics vadano perduti quando riduco la finestra a icona?
Inoltre sapete dirmi come rendere visibile tutta l'immagine disegnata, visto che spesso eccede le dimensioni della PictureBox e risulta tagliata, tramite le barre di scorrimento (il controllo PictureBox è "dockato" in posizione "top" o "fill")? THX a tutti, byez |
| Alessandro Di Noia |
Re: Gestione dei disegni in una PictureBox
Se usi GDI+ per disegnare su una PictureBox tramite l'evento paint poi sei sempre tu a doverti occupare di ridisegnare l'immagine a seguito di un ridimensionamento o di uno spostamento della picturebox. In sostanza ogni volta che iconizzi e poi ripristini la form che contiene il controllo dei ridisegnare tutto. Un consiglio: potresti provare a disegnare su un oggetto di tipo image o bitmap dichiarato a livello di classe in modo che sia sempre disponibile e nell'evento paint nn fai altro che richiamare il metodo DrawImage.
Occhio solo che è un operazione che impiega una determinata quantità di memoria proporzionale alle dimensioni dell'immagine. Per ciò che concerne le barre di scorrimento nn ho ben capito ma forse con la proprietà ClientRectangle del controllo o calcolandoti la dimensione dell'immagine prima di fare le operazioni di disegno potresti aggirare il problema. HTH Alessandro Di Noia |
| Aedi Dea |
Re: Gestione dei disegni in una PictureBox
Io uso un codice simile a questo per disegnare:
Graphics g = pictureBox1.CreateGraphics(); g.drawRectangle(...); Quindi presumo di utilizzare GDI+... Il mio problema è di rendere "scrollabile" la PictureBox se le dimensioni del disegno eccedono quelle della PictureBox stessa, ho provato inserendo la PictureBox in un Panel con abilitata la proprità AutoScroll, ma nulla di fatto... THX |
| Alessandro Di Noia |
Re: Gestione dei disegni in una PictureBox
> Quindi presumo di utilizzare GDI+...
Sì stai usando GDI+ > Il mio problema è di rendere "scrollabile" la PictureBox se le dimensioni del disegno > eccedono quelle della PictureBox stessa, ho provato inserendo la PictureBox in un Panel > con abilitata la proprità AutoScroll, ma nulla di fatto... Non è una cosa automatica, in quanto disegnando direttamente sul controllo, eludi la normale gestione del contenuto dello stesso e quindi sei sempre tu a doverti occupare di gestire le scrollbars. Questo è il rovescio della medaglia di GDI ;) Purtroppo non so dirti molto sulle scrollbar ma sicuramente facendo un po' di googling lo trovi senza problemi HTH Alessandro Di Noia |