Schnell und einfach: Verschieben eines Rechtecks mit c# In einer Windows-Speicher-App

Meine allgemeine Blog-Philosophie ist, dass es völlig in Ordnung, über alte blog, besiedelt von Motiven, die zu Tode an anderer Stelle erbracht hat.  Ich nehme an, dieses Thema ist einer von denen, aber ich bin Bloggen es sowieso.

Ich arbeite schon seit über einem Fenster-Speicher-app und ich bin an der Stelle wo ich muss einige animieren zu tun.  Zu diesem Zweck, Ich habe herauszufinden Bits und Stücke von Windows speichern app Animation die, wie sich herausstellt, ist ganz nah an, aber nicht genau wie, XAML-basierte Animationen in .NET (Ich komme noch in den Griff bekommen mit der Tatsache, dass WinRT <> .NET 🙂 ).

Heute Morgen wollte ich einen Handle auf Drag und drop-Operationen.  Auf dem Weg nach, Ich habe verzettelt sich bewegen stattdessen ein Rechteck :).  Hier ist der Code, der ein Rechteck bewegt, wenn der Benutzer auf eine Schaltfläche klickt:

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

Der Trick dabei ist, dass ich direkt OffsetX oder OffsetY geändert werden kann.  Möglicherweise gibt es ein schlauer Weg dies zu tun (und wenn Sie wissen und fühlen sich wie, Bitte in den Kommentaren Posten). 

Um dies zu tun, Ich muss:

1. MatrixTransform des Rechtecks zu erhalten (durch das Umwandeln von RenderTransform).

2. Die Matrix von dem Typen bekommen.

3. Ändern Sie die Matrix-offsets.

4. Weisen Sie der Matrix zurück zu MatrixTransform.

5. Zuweisen von MatrixTransform zurück auf das Rechteck.

Um es zu testen, Ich habe ein Rechteck und den Bildschirm-Taste. Wenn ich auf die Schaltfläche klicken, die oben genannten Logik führt und verschiebt das Rechteck sofort.

An einem gewissen Punkt, Ich möchte dies zu animieren, aber ich habe keine Ahnung wie man eine DoubleAnimation zusammen zu arbeiten (Storyboard.SetTargetProperty() ist mir ein Rätsel zu diesem für die Zeit sein).

</Ende>

undefinedOnnieren Sie meinen Blog ab.

Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin

Hinterlasse eine Antwort

Deine Email-Adresse wird nicht veröffentlicht. erforderliche Felder sind markiert *