为什么以下代码不会将ScaleY
更改为1
?
var transform = new ScaleTransform { ScaleY = 0 };
var story = new Storyboard();
var animation = new DoubleAnimation {
Duration = new Duration(new TimeSpan(0)), To = 1 };
Storyboard.SetTarget(animation, transform);
Storyboard.SetTargetProperty(animation, new PropertyPath("ScaleY"));
story.Children.Add(animation);
story.Begin();
我间接使用transform
:它用于渲染一些UIElements
并保存在DependencyProperty
中。
答案 0 :(得分:1)
如果您放弃故事板并直接致电BeginAnimation,它可能有用吗?
var transform = new ScaleTransform { ScaleY = 0 };
var animation = new DoubleAnimation { Duration = TimeSpan.Zero, To = 1 };
transform.BeginAnimation(ScaleTransform.ScalyYProperty, animation);
请注意,如果动画的FillBehavior的值为HoldEnd
,则此效果只会有效。否则,动画属性将立即恢复为其本地值(此处为0)。幸运的是HoldEnd
是FillBehavior
的默认值。
当然,transform
应该在某处使用。