2015-11-20 40 views
1

我想用WPF創建動畫,但我不知道正確的方法。動畫應該是異步的。動畫應該是長的矩形(高度)在wpf和c中設置動畫對象的正確方法#

Image

。是不是一個好選擇的畫布對象?

也許有人可以給我一個有用的鏈接。我不想要任何代碼片段。

+0

你的意思是說是放大了,還是說你已經有圖像了? –

+0

@IanH。它應該是一個單色矩形(矩形內沒有任何東西)。這個矩形應該在高度上增長。 – MyNewName

+0

有很多方法,所以任何人都很難告訴你正確的方法。您需要向我們提供您的場景的詳細說明,以供我們作出判斷;否則,這是一個基於意見的電話。 –

回答

-2

我不知道你的意思,我不太瞭解WPF,但我會繪製一個矩形,然後使用一個計時器來重繪和調整它的大小。

+0

感謝您的回答,關於性能是什麼,因爲它應該更新每個像素? – MyNewName

+0

@MyNewName我不認爲單色矩形會佔用很多性能。 –

+0

不,我有一個高度爲1px的矩形。然後我將高度更改爲2px並重新繪製。之後,我將高度更改爲3px並重新繪製。現在矩形應該是800px高度。也許當時有多個矩形。 – MyNewName

0

鏈接:

  1. Animation Overview : MSDN

  2. Animation How-To : MSDN

在你的情況,問題是 「高增長向下或兩者上/下(50%),每一個」。爲了使矩形只向上生長,幾個小挑戰。

  1. 如何動畫像Canvas.Top這樣的附加屬性。 (方法1)

  2. 如何動畫比例變換。 (方法2)

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> 
相關問題