我有一个Canvas,需要为其设置RenderTransform属性的动画。开始和结束矩阵将是任意的,因此我无法在XAML中预先编写情节提要,因此我尝试在代码中进行操作,找不到任何如何执行此操作的示例,以下是我的最佳尝试这不起作用(它可以编译并运行,但是rendertransform不会改变)。

关于应该如何做的任何建议?

MatrixAnimationUsingKeyFrames anim = new MatrixAnimationUsingKeyFrames();
MatrixKeyFrameCollection keyframes = new MatrixKeyFrameCollection();
DiscreteMatrixKeyFrame start = new DiscreteMatrixKeyFrame(fromMatrix, KeyTime.FromPercent(0));
DiscreteMatrixKeyFrame end = new DiscreteMatrixKeyFrame(toMatrix, KeyTime.FromPercent(1));

keyframes.Add(start);
keyframes.Add(end);
anim.KeyFrames = keyframes;

Storyboard.SetTarget(anim, World.RenderTransform);
Storyboard.SetTargetProperty(anim, new PropertyPath("Matrix"));

Storyboard sb = new Storyboard();
sb.Children.Add(anim);
sb.Duration = TimeSpan.FromSeconds(4);
sb.Begin();

最佳答案

尽管我使用的解决方案无法应对旋转或剪切,但今天早上我遇到了这个问题。 link

10-06 15:43