Hurtig og nem: Flytte et rektangel ved hjælp af C# i en Windows Store App

Min generelle blog filosofi er, at det er helt fint at blog om gamle, afgjort emner, der har været dækket til døden andetsteds.  Jeg formoder, dette emne er en af dem, men jeg er blogging det alligevel.

Jeg har arbejdet på et vindue butik app og jeg er på del hvor jeg skal gøre nogle animere.  Til dette formål, Jeg har været at finde ud af bits og stykker af windows gemmer app animation som, da det viser sig, er ganske tæt på, men ikke præcis som, XAML baseret animationer i .NET (Jeg stadig kommer til livs med faktum at WinRT <> .NET 🙂 ).

Her til morgen jeg ønskede at få styr på træk og slip.  På vej til at, Jeg fik kørt ned flytter et rektangel i stedet :).  Her er den kode, der flytter en rektangel, når brugeren klikker på en knap:

   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 her er at jeg direkte ikke kan ændre OffsetX eller OffsetY.  Der kan være en mere smart måde at gøre dette (og hvis du kender og føler sig som, bedes du sende i kommentarerne). 

For at gøre dette, Jeg har brug for at:

1. Få MatrixTransform af rektanglet (ved at kaste RenderTransform).

2. Få matrixen for at fyr.

3. Ændre den Matrix kompensationskøb.

4. Gentildele Matrix tilbage til MatrixTransform.

5. Gentildele MatrixTransform tilbage til rektanglet.

At teste det., Jeg sætter et rektangel og knappen på skærmen. Når jeg klikker på knappen, den ovenstående logik udfører og flytter rektanglet straks.

På et tidspunkt, Jeg vil gerne animere det men jeg har ingen idé om hvordan man får en DoubleAnimation til at arbejde på det. (Storyboard.SetTargetProperty() bliver et mysterium for mig på dette for tiden).

</slutningen>

undefinedAbonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Efterlad et svar

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *