0

私は Windows Phone 8 ゲーム アプリケーションを開発しています。画像を回転させたいと同時に、画像のサイズを 100 から 0 に変更し、次に 0 から 100 に変更したいと考えています。

<Storyboard x:Name="Rotatetransition" >
        <DoubleAnimation Storyboard.TargetName="TransRotate" 
                     Storyboard.TargetProperty="ScaleX"
                     From="1" To="0"
                     BeginTime="0:0:0"
                     Duration="0:0:0.5"  
                     AutoReverse="True"/>
        <DoubleAnimation Storyboard.TargetName="TransRotate" 
                     Storyboard.TargetProperty="ScaleY"
                     From="1" To="0"                                                           
                     BeginTime="0:0:0"
                     Duration="0:0:0.5"
                     AutoReverse="True"/>
    </Storyboard>

したがって、このアニメーションは画像のサイズを 100 から 0 に変更しています。同じ画像を回転させて見栄えを良くし、新しいゲーム用に新しい画像をロードできるようにします。

画像を回転させるためにコードがあります

<Storyboard x:Name="Rotatetransition2" >
        <DoubleAnimation Storyboard.TargetName="AnimatedRotateTransform" 
                                             Storyboard.TargetProperty="Angle" 
                                             By="10"        
                                             To="720" 
                                             Duration="0:0:0.2" 
                                             FillBehavior="Stop" />

    </Storyboard>

しかし、問題は Image コントロールにあります。使用できる子は 1 つだけです<Image.RenderTransform>

<Image x:Name="PreviewImage" Height="480" Width="480" Opacity="1" RenderTransformOrigin="0.5,0.5"   >
                <Image.RenderTransform>
                    <ScaleTransform x:Name="TransRotate" />
                </Image.RenderTransform>
                <!--<Image.RenderTransform>
                    <RotateTransform x:Name="AnimatedRotateTransform" Angle="0" />
                </Image.RenderTransform>-->
            </Image>

ゲームが完了すると、コードビハインドで呼び出します

 Rotatetransition.Begin();
 Circletransition.Begin();
 RotatetransitionRev.Begin(); // Again resize the new Loaded image from 0 to 100
 Circletransitionrev.Begin(); // Roate the image again from 0 to 720
 StartThegame();

これを達成する方法を誰かが提案できますか?

そして新しいゲームが始まります。

4

1 に答える 1

1

TransformGroup を使用してみてください。

<Image.RenderTransform>
    <TransformGroup>
        <ScaleTransform />
        <RotateTransform />
    </TransformGroup>
</Image.RenderTransform>
于 2013-09-26T16:22:27.660 に答える