Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.net] WPF ruotare immagine in base al valore di una property
Forum - C# / VB.NET - [VB.net] WPF ruotare immagine in base al valore di una property

Avatar
raffa505 (Normal User)
Newbie


Messaggi: 10
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 10:16
Domenica, 21/07/2013
Salve c'è un modo per ruotare un'immagine in base al valore di una property?
(voglio solo ruotarla di 90 gradi rispetto al centro)

Codice sorgente - presumibilmente Plain Text

  1. <Image Source="{Binding Path=img}" Stretch="Fill" Width="100" Height="120" />


PM Quote
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 4:21
Sabato, 27/07/2013
così ruoti l'intero controllo

Codice sorgente - presumibilmente Plain Text

  1. <Image.RenderTransform>
  2.      <RotateTransform Angle="{Binding Path=RotationDegrees}" />
  3. </Image.RenderTransform>



altrimenti via codice

Codice sorgente - presumibilmente C# / VB.NET

  1. Image myImage = new Image();
  2. BitmapImage bi = new BitmapImage();
  3.  
  4. bi.BeginInit();
  5.  
  6. bi.Rotation = Rotation.Rotate90;
  7. bi.UriSource = new Uri("il tuo uri");
  8.  
  9. bi.EndInit();
  10. myImage.Source = bi;
  11. myImage.Stretch = Stretch.None;


Ultima modifica effettuata da Dedalux il 27/07/2013 alle 4:29


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
raffa505 (Normal User)
Newbie


Messaggi: 10
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 14:40
Lunedì, 29/07/2013
col primo modo la rotazione avviene ma non è rispetto al centro e poi volevo che il controllo si allargasse quando ruoto l'immagine...

PM Quote
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 14:28
Mercoledì, 31/07/2013
Se non imposti Height e Width su valori fissi il controllo si adatta al contenuto.
Prova anche il secondo metodo, che forse è quello che cercavi tu.


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
raffa505 (Normal User)
Newbie


Messaggi: 10
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 11:06
Mercoledì, 14/08/2013
Non funziona col secondo modo non disegna proprio le immagini...
ecco parte della mia classe forse vi potrà aiutare...

Codice sorgente - presumibilmente VB.NET

  1. Public Class Card
  2.     Public Property code As String
  3.     Public Property name As String
  4.     Public Property img As Uri
  5.     Public Property imgrot As Integer = 0
  6.  
  7.     Public Sub New(cd As String)
  8.         code = cd
  9.     End Sub
  10.  
  11.     Public Sub loadcardinfo()
  12.         Dim ur As String = com.imgpath & code & ".jpg"
  13.         img = New Uri(ur, UriKind.RelativeOrAbsolute)
  14.         '...
  15.    End Sub
  16.  
  17. End Class


PM Quote
Avatar
raffa505 (Normal User)
Newbie


Messaggi: 10
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 15:41
Lunedì, 26/08/2013
Dai aiutatemi... non è che devo usare i converter?

PM Quote
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 21:23
Martedì, 27/08/2013
Usa il primo metodo che ho suggerito, impostando RenderTransofrmOrigin su 0.5,0.5 (la metà in %)
e poi gioca con la proprietà Stretch di Image e la dimensione dellla colonna/riga che contiene l'immagine per ottenere l'effetto esatto che vuoi te


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
raffa505 (Normal User)
Newbie


Messaggi: 10
Iscritto: 07/11/2012

Segnala al moderatore
Postato alle 9:59
Mercoledì, 28/08/2013
uhm ok ci provo... ma come faccio poi ad aggiornare il bind quando la property cambia???

PM Quote
Avatar
Dedalux (Member)
Pro


Messaggi: 103
Iscritto: 15/12/2010

Segnala al moderatore
Postato alle 5:35
Giovedì, 29/08/2013
Il bello del binding è che si aggiorna da solo, tranne in alcuni casi come la proprietà text che si aggiorna al lost focus (di default), e allora si imposta sul binding UpdateSuorceTrigger su PropertyChanged (ovviamente le modifiche al source devono essere notificate tramite INotifyPropertyChanged)


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote