我有一个 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();