Tôi đang sử dụng DoubleAnimation để kích hoạt thuộc tính Angle của RotationTransform. Một vài lần mỗi giây, tôi cần phải thay đổi tốc độ quay để đáp ứng với dữ liệu bên ngoài sao cho tốc độ quay tăng lên và/hoặc chậm lại (suôn sẻ) theo thời gian. Tôi hiện đang làm điều này bằng cách sử dụng một DoubleAnimation mà lặp đi lặp lại mãi mãi ,0-360,0 với thời gian X, sau đó một vài lần mỗi giây:Tự động thay đổi hoạt ảnh xoay vòng trong WPF
- Grab một giá trị mới từ dữ liệu bên ngoài
- Sửa đổi tỷ lệ trên DoubleAnimation đó giá trị
- Re-Áp dụng các DoubleAnimation đến tài sản góc lại
Lưu ý: tôi đã thấy rằng tôi đã phải thay đổi để Từ tài sản trên các hình ảnh động để "góc hiện tại" và "góc hiện tại + 360" - may mắn cho tôi RotationTransform không gặp khó khăn gì với góc độ > 360 độ - để tránh bắt đầu xoay vòng một lần nữa từ góc 0.
Câu hỏi của tôi là: Điều này có hợp lý không? Nó không có vẻ như vậy. Liên tục áp dụng DoubleAnimations mới cho thuộc tính Angle trên một biến đổi xoay có vẻ sai - giống như tôi cho phép WPF tạo hoạt ảnh cho vòng quay, trong khi I đang tự động tạo tốc độ quay.
Có cách nào tốt hơn không?
Điều đó sẽ được đánh giá cao rất nhiều. – Bill
Cảm ơn, tôi sẽ có thể sử dụng nó. Buồn cười là chúng ta phải thực hiện một cuộc gọi phương thức (SetSpeedRatio), có nghĩa là tôi không thể tạo hiệu ứng thay đổi tỷ lệ tốc độ với một hoạt ảnh khác, tất cả trong Xaml và tất cả; nhưng điều này có vẻ chính xác hơn nhiều so với việc áp dụng các hoạt ảnh mới mọi lúc để có hiệu lực. Cảm ơn bạn. – Bill
Câu trả lời này hữu ích nhất trong trường hợp của chúng tôi nhưng có một sự khác biệt quan trọng đã không làm cho nó hoạt động. ít nhất với WPF trong WinRT. Phương thức SetSpeedRatio() đã không làm bất cứ điều gì vì vậy chúng tôi đã thay đổi nó thành thuộc tính SpeedRatio và đã thực hiện điều đó. –