ciao a tutti, ho risolto aggiungendo un'altra variabile booleana. era molto più semplice del previsto, probabilmente mi sono incartato da solo =)
ho inserito due variabili booleane (first, second) valorizzate a seconda se voglio disegnare il primo o il secondo rettangolo. funziona perfettamentecodice:void CompositionTarget_Rendering(object sender, EventArgs e) { if (first) { if (cropping) { rect.SetValue(Canvas.LeftProperty, (p1.X < p2.X) ? p1.X : p2.X); rect.SetValue(Canvas.TopProperty, (p1.Y < p2.Y) ? p1.Y : p2.Y); rect.Width = (int)Math.Abs(p2.X - p1.X); rect.Height = (int)Math.Abs(p2.Y - p1.Y); cropped = true; } if (cropped) { rect.SetValue(Canvas.LeftProperty, (p1.X < p2.X) ? p1.X : p2.X); rect.SetValue(Canvas.TopProperty, (p1.Y < p2.Y) ? p1.Y : p2.Y); } } } } void CompositionTarget_Rendering2(object sender, EventArgs e) { if (second) { if (cropping) { rect2.SetValue(Canvas.LeftProperty, (p1.X < p2.X) ? p1.X : p2.X ); rect2.SetValue(Canvas.TopProperty, (p1.Y < p2.Y) ? p1.Y : p2.Y ); rect2.Width = (int)Math.Abs(p2.X - p1.X ); rect2.Height = (int)Math.Abs(p2.Y - p1.Y ); } if (cropped) { rect2.SetValue(Canvas.LeftProperty, (p1.X < p2.X) ? p1.X : p2.X); rect2.SetValue(Canvas.TopProperty, (p1.Y < p2.Y) ? p1.Y : p2.Y); } } }
NUOVO PROBLEMA.
una terza variabile (cropped) la volevo utilizzare per modificare la posizione del rettangolo disegnato. con il codice che ho implementato riposiziono con il click. in realtà mi piacerebbe poterlo riposizionare con una funzione drag. qualche idea??? il massimo sarebbe anche avere la possibilità di poter ridimensionare e spostare l'immagine con una funzione tipo che combini il drag e il pinch (lo zoom fatto con le dita). naturalmente il tutto renderizzato in tempo reale, any ideas??
grazie mille![]()

Rispondi quotando