我想为我的网格创建动态翻译Y动画,但我无法通过编程方式找到如何在UWP中创建动画。
我有这段代码,但它说
WinRT信息:无法解析指定对象上的TargetProperty TranslateY。
我试图将属性名称设置为Y,但它说:
WinRT信息:无法解析指定对象上的TargetProperty Y。
样品:
private void CreateStoryBoardAnimation(Grid myGrid)
{
myGrid.RenderTransform = new CompositeTransform();
Storyboard storyboard = new Storyboard();
DoubleAnimation translateYAnimation = new DoubleAnimation();
translateYAnimation.From = -500;
translateYAnimation.To = 1;
translateYAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(500));
Storyboard.SetTarget(translateYAnimation, myGrid);
Storyboard.SetTargetProperty(translateYAnimation, "TranslateY");
storyboard.Children.Add(translateYAnimation);
storyboard.Begin();
}
我也试过使用TranslateTransform课......但我不知道如何使用它。
Storyboard.SetTargetProperty只接受UWP中的字符串。
我想用动画在屏幕上移动我的网格。我知道如何在混合中制作故事板动画,但在这种情况下,这不是一个选项。
答案 0 :(得分:4)
你的代码完全正确只使用这一行:
Storyboard.SetTargetProperty(translateYAnimation, "(UIElement.RenderTransform).(CompositeTransform.TranslateY)");
而不是
Storyboard.SetTargetProperty(translateYAnimation, "TranslateY");
那就是它。祝你有美好的一天:)
答案 1 :(得分:1)
我建议您在xaml中定义动画并更新代码中的所有必需参数:
<Grid>
<Grid.Resources>
<Storyboard x:Name="SlidingAnimatoin">
<DoubleAnimation Storyboard.TargetName="TranslateTransform"
Storyboard.TargetProperty="Y"
From="100"
To="0"
Duration="0:0:0.5">
</DoubleAnimation>
</Storyboard>
</Grid.Resources>
<Grid.RenderTransform>
<TranslateTransform x:Name="TranslateTransform"/>
</Grid.RenderTransform>
</Grid>
在代码中,您可以按名称SlidingAnimatoin
访问情节提要,并在DoubleAnimation
更新所有属性。