C# 如何触发隐式合成动画

C# 如何触发隐式合成动画,c#,uwp,windows-community-toolkit,C#,Uwp,Windows Community Toolkit,根据我所能提供的唯一文档,我尝试了以下XAML: <Image Name="testImage" Source="https://upload.wikimedia.org/wikipedia/commons/c/c4/PM5544_with_non-PAL_signals.png" Width="800"> <animations:Implicit.Animations> <animations:ScalarAnimation Target=

根据我所能提供的唯一文档,我尝试了以下XAML:

<Image Name="testImage" Source="https://upload.wikimedia.org/wikipedia/commons/c/c4/PM5544_with_non-PAL_signals.png" Width="800">
    <animations:Implicit.Animations>
        <animations:ScalarAnimation Target="Translation.Y" ImplicitTarget="Offset" Duration="0:0:4"/>
        <animations:ScalerAnimation Target="Opacity" Duration="0:0:4" />
    </animations:Implicit.Animations>
</Image>
但我不知道如何触发平移动画(或旋转或缩放)。我试过这个:

private void myButton_Tapped(object sender, TappedRoutedEventArgs e)
{
    var translate = new TranslateTransform();
    translate.Y = 400;
    testImage.RenderTransform = translate;
}
同时,这也希望隐式将覆盖持续时间,但没有运气:

private void myButton_Tapped(object sender, TappedRoutedEventArgs e)
{
    testImage.Offset(0, 400, 0).Start();
}

这些更改应用于这些,但没有4秒钟的动画。
TranslateTransform
是一个
RenderTransform
,与要实现的
合成
变换无关,
偏移
隐式动画覆盖XAML设置

要使其工作,您需要掌握
元素Visual
,然后直接更改
偏移量

private void myButton_Tapped( object sender, TappedRoutedEventArgs e )
{
    var imageVisual = ElementCompositionPreview.GetElementVisual( testImage );
    imageVisual.Offset = new Vector3( 0, 400, 0 );
}

TranslateTransform
是一个
RenderTransform
,与要实现的
合成
变换无关,
偏移
隐式动画覆盖XAML设置

要使其工作,您需要掌握
元素Visual
,然后直接更改
偏移量

private void myButton_Tapped( object sender, TappedRoutedEventArgs e )
{
    var imageVisual = ElementCompositionPreview.GetElementVisual( testImage );
    imageVisual.Offset = new Vector3( 0, 400, 0 );
}

如果有人遵循这个问答,答案是正确的,但我的示例中的XAML需要从ScalarAnimation更改为Vector3Animation。这也帮助我更好地理解了组合API。如果有人遵循这个问答,答案是正确的,但我的示例中的XAML需要从ScalarAnimation更改为Vector3Animation。这也帮助我更好地理解了组合API。