在wpf和c#中为对象设置动画的正确方法

时间:2015-11-20 19:43:38

标签: c# wpf animation wpf-animation

我想创建一个WPF的动画,但我不知道正确的方法。动画应该是异步的。动画应该是一个增长(高度)的矩形

Image

。画布对象是否适合这样的选择?

也许有人可以给我一个有用的链接。我不想要任何代码段。

2 个答案:

答案 0 :(得分:0)

链接:

  1. Animation Overview : MSDN

  2. Animation How-To : MSDN

  3. 在您的情况下,问题是"高度向下增长或向上/向下(50%)每个"。为了使Rectangle只向上增长,几乎没有什么小挑战。

    1. 如何为Canvas.Top等附加属性设置动画。 (方法1)

    2. 如何为比例变换设置动画。 (方法2)

    3. Animating Attached-Property

      Animating Transforms

      我使用Canvas发布了一个工作代码(方法1)。

      <Canvas Margin="482,125,206,10" Background="MediumSeaGreen">
          <Rectangle x:Name="Rect" Fill="#FF030315"  Height="100"  Stroke="Black" Width="42" Canvas.Top="222">
              <Rectangle.Triggers>
                  <EventTrigger RoutedEvent="MouseEnter">
                      <EventTrigger.Actions>
                          <BeginStoryboard x:Name="Sb">
                              <Storyboard>
                                  <DoubleAnimation Storyboard.TargetProperty="(Canvas.Top)" Storyboard.TargetName="Rect" By="-100" Duration="0:0:5"/>
                                  <DoubleAnimation Storyboard.TargetProperty="Height" Storyboard.TargetName="Rect" By="100" Duration="0:0:5"/>
                              </Storyboard>
                          </BeginStoryboard>
                      </EventTrigger.Actions>
                  </EventTrigger>
                  <EventTrigger RoutedEvent="MouseLeave">
                      <EventTrigger.Actions>
                          <PauseStoryboard BeginStoryboardName="Sb" />
                      </EventTrigger.Actions>
                  </EventTrigger>
      
              </Rectangle.Triggers>
          </Rectangle>
      </Canvas>
      

答案 1 :(得分:-2)

我不确切地知道你的意思,我不太喜欢WPF,但我会绘制一个矩形,然后用一个Timer来重绘并调整它。