სწრაფი და მარტივი: გადატანა მართკუთხედი გამოყენებით C # In Windows მაღაზია ოთახი

ჩემი მთლიანობაში წაკითხვა ფილოსოფია არის, რომ ეს შესანიშნავად ჯარიმა წაკითხვა ძველი, დასახლებული სუბიექტები, რომლებიც დაფარული სიკვდილით მის ფარგლებს გარეთ.  მე ვივარაუდოთ, ეს თემა ერთ იმ, მაგრამ მე ბლოგინგი მაინც.

მე მუშაობა ფანჯრის მაღაზია ოთახი და მე ერთი ნაწილი, სადაც მე უნდა გავაკეთოთ ზოგიერთი animating.  ამ მიზნით, მე მჭიდროდაა out ბიტი და ცალი ფანჯარა შენახვის ოთახი ანიმაცია, რომელიც, როგორც ირკვევა,, საკმაოდ ახლოს, მაგრამ არა ზუსტად ისევე, როგორც, XAML საფუძველზე ანიმაციის წელს. NET (მე აქეთ მოდის გაუსწოროს ფაქტს, რომ WinRT <> .NET 🙂 ).

დღეს დილით მე მინდოდა სახელური, გადააადგილება ოპერაციებში.  მიემართებოდა, რომ, მე მივიღე bogged ქვემოთ მოძრავი მართკუთხედი ნაცვლად :).  აი კოდი, რომელიც მოძრაობს მართკუთხედი, როდესაც მომხმარებელი იმოქმედებს ღილაკზე:

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

შეასრულა ისაა, რომ მე არ შემიძლია პირდაპირ შეცვალოს OffsetX ან OffsetY.  ამისთვის შეიძლება იყოს უფრო ჭკვიანი გზა ამით (და თუ თქვენ იცით და გრძნობენ, როგორც, გთხოვთ ჩანაწერები კომენტარები). 

იმისათვის, რომ ამის გაკეთება, მე უნდა:

1. მიიღეთ MatrixTransform of ოთხკუთხედი (by ჩამოსხმის RenderTransform).

2. მიიღეთ Matrix, რომ ბიჭი.

3. შეცვლა Matrix-ის ჩათვლის.

4. Reassign Matrix უკან MatrixTransform.

5. Reassign MatrixTransform უკან მართკუთხედი.

ამის შესამოწმებლად ეს, მე ზუსტად ოთხკუთხედის და ღილაკს ეკრანზე. როცა ღილაკს, ზემოთ ლოგიკა გაუშვებს და მოძრაობს მართკუთხედი დაუყოვნებლივ.

რაღაც მომენტში, მე მინდა animate, მაგრამ არ ვიცი როგორ უნდა DoubleAnimation მუშაობა (Storyboard.SetTargetProperty() არის საიდუმლო, რომ მე ამ დროისათვის).

</ბოლო>

undefinedგამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

დატოვე პასუხი

თქვენი ელ-ფოსტა არ გამოქვეყნდება. აუცილებელი ველები მონიშნულია *