Snabb och enkel: Flytta en rektangel med C# i en Windows Store App

Min övergripande blogg filosofi är att det är väl bra att blogga om gamla, bosatte sig ämnen som har täckts till döden på andra håll.  Jag antar att detta ämne är en av de, men jag är blogga det ändå.

Jag har jobbat på en fönster store app och jag på delen där jag behöver göra några animera.  I detta syfte, Jag har räkna ut bitar och bitar av windows lagrar app animation som, som det visar sig, är ganska nära till, men inte precis som, XAML baserad animationer i .NET (Jag fortfarande kommer till rätta med faktumet att WinRT <> .NETT 🙂 ).

I morse jag ville få ett grepp om dra och släpp-operationer.  På väg till som, Jag har kört ner flytta en rektangel i stället :).  Här är koden som flyttar en rektangel när användaren klickar på en knapp:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              Matrix m = ct.Matrix;
   4:              m.OffsetX  = 10;
   5:              m.OffsetY  = 10;
   6:              CT.Matrix = m;
   7:              rectBig.RenderTransform = ct;

Tricket är att jag inte direkt att ändra OffsetX eller OffsetY.  Det kan finnas ett smartare sätt att göra detta (och om du vet och känner, posta i kommentarerna). 

För att göra detta, Jag behöver:

1. Få MatrixTransform av rektangeln (genom att RenderTransform).

2. Få matrisen av att killen.

3. Ändra i matrisen förskjutningar.

4. Tilldela om matrisen tillbaka till MatrixTransform.

5. Omtilldela MatrixTransform tillbaka till rektangeln.

Testa det, Jag satte en rektangel och knapp på skärmen. När jag klickar på knappen, ovanstående logiken körs och flyttar rektangeln omedelbart.

Vid något tillfälle, Jag vill animera detta men jag har ingen aning hur man får en DoubleAnimation att arbeta på det (Storyboard.SetTargetProperty() är ett mysterium för mig på den här gången att vara).

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Lämna svar

Din e-postadress kommer inte att publiceras. behövliga fält är markerade *