C# 使用故事板更改矩形的比例

C# 使用故事板更改矩形的比例,c#,wpf,xaml,storyboard,C#,Wpf,Xaml,Storyboard,我想用故事板改变矩形的比例,我不知道为什么它不起作用。期待任何人的回复!C#代码是: XAML文件是: <Grid> <StackPanel> <Rectangle x:Name="rect" Fill="Blue" Width="200" Height="40" Margin="5" RenderTransformOrigin="0.5,0.5"> <Rectangle.RenderTransform>

我想用故事板改变矩形的比例,我不知道为什么它不起作用。期待任何人的回复!C#代码是:

XAML文件是:

<Grid>
    <StackPanel>
      <Rectangle x:Name="rect" Fill="Blue" Width="200" Height="40" Margin="5" RenderTransformOrigin="0.5,0.5">
        <Rectangle.RenderTransform>
            <TransformGroup>
                <ScaleTransform x:Name="st" ScaleX="1" ScaleY="1" />
            </TransformGroup>
        </Rectangle.RenderTransform>
      </Rectangle>
    </StackPanel>
</Grid>

分别尝试下面的代码。它对我很有用

   <Grid>
        <StackPanel>
            <Rectangle x:Name="rect" Fill="Blue" Width="200" Height="40" Margin="5" RenderTransformOrigin="0.5,0.5">
                <Rectangle.RenderTransform>
                    <ScaleTransform x:Name="st" ScaleX="1.0" ScaleY="1.0"></ScaleTransform>
                </Rectangle.RenderTransform>
            </Rectangle>
        </StackPanel>
    </Grid>
   <Grid>
        <StackPanel>
            <Rectangle x:Name="rect" Fill="Blue" Width="200" Height="40" Margin="5" RenderTransformOrigin="0.5,0.5">
                <Rectangle.RenderTransform>
                    <ScaleTransform x:Name="st" ScaleX="1.0" ScaleY="1.0"></ScaleTransform>
                </Rectangle.RenderTransform>
            </Rectangle>
        </StackPanel>
    </Grid>
void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        Storyboard sb = new Storyboard();   

        DoubleAnimation daScaleX = new DoubleAnimation();
        daScaleX.From = 1;
        daScaleX.To = 2;
        daScaleX.Duration = TimeSpan.FromMilliseconds(300);

        DoubleAnimation daScaleY = new DoubleAnimation();
        daScaleY.From = 1;
        daScaleY.To = 2;
        daScaleY.Duration = TimeSpan.FromMilliseconds(300);

        BounceEase easing = new BounceEase()
        {
            EasingMode = EasingMode.EaseOut
        };

        daScaleX.EasingFunction = easing;
        daScaleY.EasingFunction = easing;

        Storyboard.SetTargetProperty(daScaleX, new PropertyPath("RenderTransform.ScaleX"));
        Storyboard.SetTarget(daScaleX, rect);
        Storyboard.SetTargetProperty(daScaleY, new PropertyPath("RenderTransform.ScaleY"));
        Storyboard.SetTarget(daScaleY, rect);

        sb.Children.Add(daScaleX);
        sb.Children.Add(daScaleY);
        sb.Begin();
    }