Hızlı ve kolay: C# kullanarak bir Windows Store App bir dikdörtgeni taşımak

Benim genel blog felsefe gayet eski hakkında blog olmasıdır, başka bir yerde ölene kadar örtülü olması konular yerleşti.  Bu konuda onlardan biri varsayalım., Ama ben bloglamaya o her durumda.

Bir pencere mağaza uygulaması üzerinde çalışıyoruz ve ben vasıl belgili tanımlık bölüm nereye bazı animasyon yapmanız gereken.  Bu amaçla, Ben bit endam ve windows parçaları store app animasyon hangi, Anlaşılan o ki, oldukça olduğunu, Ama tam olarak değil gibi, .NET XAML tabanlı animasyonlar (Hala kulpları ile aslında o WinRT geliyorum <> .NET 🙂 ).

Bu sabah ele almak üzerinde sürükle ve bırak işlemlerini istedim.  Hedefe doğru o, Bunun yerine bir dikdörtgen aşağı hareket saplanmış :).  Kullanıcı bir düğmeyi tıklattığında bir dikdörtgen hareket eden kod aşağıdadır:

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

Püf, ben doğrudan OffsetX veya OffsetY değiştiremezsiniz olduğunu.  Bunu yapmanın daha akıllı bir yol olabilir. (ve biliyorum ve hissetmek gibi, Lütfen yorum sonrası). 

Bunu yapabilmek için, Gerek:

1. MatrixTransform dikdörtgen elde (RenderTransform döküm tarafından).

2. O adam matris olsun.

3. Matrix'ın uzaklıklar değiştirme.

4. Matrixe geri MatrixTransform yeniden atama.

5. Dikdörtgen için MatrixTransform yeniden atama.

Bunu test etmek için, Ben bir dikdörtgen koymak ve ekran düğmesi. Ne zaman I tıkırtı belgili tanımlık düğme, Yukarıdaki mantığı yürütür ve hemen dikdörtgeni taşır.

Bir noktada, Bu animasyon eklemek istiyorum ama DoubleAnimation üzerinde çalışmak için nasıl bilmiyorum (Storyboard.SetTargetProperty() kez bu benim için bir sır mı).

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Cevap bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *