【发布时间】:2010-11-15 23:05:01
【问题描述】:
我正在使用 WPF,但无法实现动画。
我有一个从 x 度旋转的矩形,其渲染变换原点从 0,0 开始。 我希望这个矩形在 2 秒后从 y 度旋转,渲染变换原点从 0,1 开始。
我当然想为第二个动画保留矩形位置。
我的问题是,当我更改渲染变换原点并应用第二次旋转时,当前位置没有保留,他从初始位置移动。
知道如何实现这一目标吗?
感谢您的帮助。
<Window x:Class="SimpleMove"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="OpenWWindow" Height="900" Width="900">
<Grid >
<Rectangle Name="rec1" Width="100" Height="400" Fill="DimGray" RenderTransformOrigin="0,0">
<Rectangle.RenderTransform>
<RotateTransform x:Name="Rec1_Rotate"/>
</Rectangle.RenderTransform>
</Rectangle>
<Button Width="45" Height="30" Name="Button1">Start
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetProperty="Angle">
<DoubleAnimation Storyboard.TargetName="Rec1_Rotate" By="40" Duration="00:00:1" BeginTime="00:00:00"/>
<PointAnimation Storyboard.TargetName="rec1" Storyboard.TargetProperty="RenderTransformOrigin" To="0,1" Duration="00:00:0" BeginTime="00:00:02" />
<DoubleAnimation Storyboard.TargetName="Rec1_Rotate" By="-80" Duration="00:00:2" BeginTime="00:00:03"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Button.Triggers>
</Button>
</Grid>
</Window>
【问题讨论】:
-
我不太明白您要做什么。你能不能稍微解释一下。据我了解,您试图将矩形从原始点向左旋转 40,然后您将点移动到 0,1,并且您希望它始终从那里旋转?您是否希望它从矩形的不同角旋转第二个动画?只是想对期望的结果进行一些澄清。
-
我就是这样。我想从第一个动画的第一个点旋转。然后从不同的点再次移动,但保持先前的位置。我希望它更清楚
标签: wpf rotation rendertransform