Ciao a tutti,
devo fare in modo che un immagine si adatti ad un rettangolo in base alla modalità scelta.
Le modalità sono quelle classiche e sono le seguenti:
- Centrata
- Zoom
- Ristretta
- Ripetitiva
Tutte le modalità le ho create senza problemi usando la classe TextureBrush.
Tenendo conto che il rettangolo può essere spostato all'interno di una PictureBox, quando
avviene lo spostamento l'immagine disegnata all'interno del rettangolo non cambia posizione e rimane alle coordinate di partenza. (solo l'immagine rimane ferma, il rettangolo si sposta correttamente)
Questo è quello che uso per renderare il rettangolo all'interno di una funzione che viene richiamata ogni qualvolta un rettangolo subisce un cambiamento di qualsiasi tipo:
codice:
e.Graphics.FillRectangle(ElementList[i].tBrush, ElementList[i].thisControlBackground);
Questo invece è il modo in cui creo la TextureBrush:
codice:
Classes.CustomControls.CustomControl Control__ = ((Classes.CustomControls.CustomControl)Classes.GlobalVariables.LastObjectSelected);
Control__.BackgroundImage = new Bitmap(filepath);
Control__.MediaFilePath = filepath;
Control__.tBrush = new TextureBrush(((Classes.CustomControls.CustomControl)Classes.GlobalVariables.LastObjectSelected).BackgroundImage);
Usando il TranslateTransform nel ciclo che aggiorna la grafica inserita nel programma in questo modo:
codice:
ElementList[i].tBrush.TranslateTransform(ElementList[i].thisControlBackground.x, 0, MatrixOrder.Append);
il tile dell'immagine viene spostato e basta...
io voglio solamente far in modo che questa texturebrush segua i movimenti del rettangolo...