Nhanh chóng và dễ dàng: Di chuyển một hình chữ nhật bằng cách sử dụng C# trong một ứng dụng Windows cửa hàng

Triết lý blog tổng thể của tôi là nó hoàn toàn tốt đẹp để blog về cũ, định cư đối tượng đã được đề cập đến chết ở những nơi khác.  Tôi giả định chủ đề này là một trong những, nhưng tôi viết blog nó anyway.

Tôi đã làm việc trên một cửa sổ cửa hàng ứng dụng và tôi là một phần nơi tôi cần phải làm một số animating.  Để kết thúc này, Tôi đã tìm hiểu bit và phần của windows lưu trữ hình ảnh động ứng dụng đó, vì nó biến ra, là khá gần gũi với, nhưng không chính xác như, XAML dựa trên hình ảnh động trong .NET (Tôi vẫn còn đến GRIPS với thực tế rằng WinRT <> .NET 🙂 ).

Sáng nay tôi muốn để có được một xử lý trên kéo và thả các hoạt động.  Trên đường đi đến đó, Tôi nhận được bogged xuống di chuyển một hình chữ nhật để thay thế :).  Đây là mã di chuyển một hình chữ nhật khi người dùng nhấp vào một nút:

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

The trick ở đây là rằng tôi không thể trực tiếp thay đổi OffsetX hoặc OffsetY.  Có thể có một cách thông minh hơn để làm điều này (và nếu bạn biết và cảm thấy như, Xin vui lòng gửi trong các ý kiến). 

Để làm điều này, Tôi cần phải:

1. Nhận được MatrixTransform của các hình chữ nhật (bởi đúc RenderTransform).

2. Nhận được ma trận của gã.

3. Thay đổi của ma trận offsets.

4. Gán ma trận trở lại để MatrixTransform.

5. Gán MatrixTransform quay lại các hình chữ nhật.

Để kiểm tra nó, Tôi đặt một hình chữ nhật và nút màn hình. Khi tôi nhấp vào nút, logic trên thực hiện và di chuyển các hình chữ nhật ngay lập tức.

Tại một số điểm, Tôi thích để animate này nhưng tôi không có ý tưởng làm thế nào để có được một DoubleAnimation để làm việc trên nó (Storyboard.SetTargetProperty() một bí ẩn với tôi về điều này cho thời gian không).

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Để lại câu trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *