c# - 如何在 WPF 中为 TranslateTransform 和 ScaleTransform 设置动画

标签 c# wpf storyboard doubleanimation

我正在尝试使用 StoryBoard 同时为 RectangleTranslateTransformScaleTransform 设置动画> 在代码隐藏中。我研究了一些类似的问题,但我仍然停留在第一步。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Rectangle x:Name="MyRectangle" Width="100" Height="100" Fill="Aqua"></Rectangle>
    <Button Grid.Row="1" Content="Animate" Click="ButtonBase_OnClick"/>
</Grid>

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
    {
        var translate_x = new DoubleAnimation()
        {
            From = 0,
            To = 100,
            Duration = TimeSpan.FromSeconds(5),
        };
        var translate_y = new DoubleAnimation()
        {
            From = 0,
            To = 100,
            Duration = TimeSpan.FromSeconds(5),
        };

        var scale_x = new DoubleAnimation()
        {
            From = 1,
            To = 2,
            Duration = TimeSpan.FromSeconds(5),
        };

        var scale_y = new DoubleAnimation()
        {
            From = 1,
            To = 2,
            Duration = TimeSpan.FromSeconds(5),
        };
    }

最佳答案

在 XAML 中,为您的矩形提供一个 TransformGroup:

<Rectangle x:Name="MyRectangle" Width="100" Height="100" Fill="Chartreuse">
    <Rectangle.RenderTransform>
        <TransformGroup>
            <ScaleTransform x:Name="rectScale"/>
            <TranslateTransform x:Name="rectTrans"/>
        </TransformGroup>
   </Rectangle.RenderTransform>
</Rectangle>

在代码隐藏中,对转换使用 BeginAnimation 方法:

rectScale.BeginAnimation(ScaleTransform.ScaleXProperty, scale_x);
rectScale.BeginAnimation(ScaleTransform.ScaleYProperty, scale_y);
rectTrans.BeginAnimation(TranslateTransform.XProperty, translate_x);
rectTrans.BeginAnimation(TranslateTransform.YProperty, translate_y);

关于c# - 如何在 WPF 中为 TranslateTransform 和 ScaleTransform 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31548538/

相关文章:

wpf - 跨 ViewModel 共享状态/更改

iOS 添加菜单会导致非首次查看时崩溃

ios - 表格 View 中隐藏的自定义范围 slider

ios - 导航 Controller 隐藏在某处..使用swift

c# - 如何从我的 iOS 依赖项服务 [Xamarin.Forms.iOS] 中的 Task<string> 返回值?

c# - 工具版本不支持 VsTsc 任务

c# - 在 WPF 装饰器中绘制虚线

c# - 为什么需要将静态方法包装到一个类中?

c# - 替换所有程序的 Windows 快捷方式

c# - 序列化 GradientBrush