La meva filosofia de bloc global és que està perfectament bé a blog sobre l'antic, es van establir d'assignatures que s'han cobert fins a la mort en un altre lloc. Suposo que aquest tema és una d'aquestes, però jo sóc blogging de tota manera.
He estat treballant en un app de botiga de finestra i estic a la part on he de fer alguns animant. Amb aquesta finalitat, He estat esbrinar miques i peces de windows emmagatzema animació app que, doncs resulta, està molt a prop, però no exactament com, Animacions de XAML basat en .NET (Jo encara estic arribant a enfrontar el fet que WinRT <> .NET 🙂 ).
Aquest matí he volgut aconseguir una maneta en arrossegar i deixar anar les operacions. En ruta cap a la, Jo s'encallava movent un rectangle en el seu lloc :). Aquí és el codi que mou un rectangle quan l'usuari fa clic a un botó:
1:
2: MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
3: Matriu m = ct.Matriu;
4: = m.OffsetX 10;
5: = m.OffsetY 10;
6: CT.Matriu = m;
7: rectBig.RenderTransform = ct;
El truc és que directament no pot canviar OffsetX o OffsetY. Hi pot haver una manera de fer-ho més intel ligent (i si vostè sap i se sent com, Si us plau enviar en els comentaris).
Per aconseguir-ho, Necessito:
1. Obtenir el MatrixTransform del rectangle (els càsting RenderTransform).
2. Obtenir la matriu d'aquest tipus.
3. Canviar les compensacions de la matriu.
4. Reassigna la matriu torna a la MatrixTransform.
5. Reassigna la MatrixTransform torna a Rectangle.
Per analitzar-lo, Vaig posar un rectangle i botó de la pantalla. Quan faig clic al botó, la lògica anterior executa i mou el rectangle immediatament.
En algun moment, M'agradaria animar això però no tinc cap idea com per aconseguir un DoubleAnimation treballar-hi (Storyboard.SetTargetProperty() està sent un misteri per a mi en això per a l'hora).
</final>
Follow me on Twitter http://www.twitter.com/pagalvin