2011-09-29 93 views
2

我有一個不可見的折線,其中包含很多畫布中的點。在動畫中畫一條線

<Polyline x:Name="plinePath" Stroke="#00000000" StrokeThickness="3"> 
      <Polyline.Points> 
      <Point X="0" Y="0" /> 
      <Point X="10" Y="10" /> 
      <Point X="10" Y="20" /> 
      <Point X="20" Y="20" /> 
      ... 
       ... 
       ... 
     </Polyline.Points> 
    </Polyline> 

現在我需要在運行時渲染線,就像有人用紅色繪製線一樣。如果可以的話,我想在Storyboard中這樣做。

有關我如何做到這一點的任何提示?

回答

0

OK,

我終於做到了爲創建自己的customcontrol有一個Canvas並在它的折線。我的控制主要有兩個公共屬性:

  • PathPoints(List<Points>):路徑中的所有點的名單

  • 當前點(int):顯示在那些小於或等於PathPoints所有點那個數字。

現在我可以使用基於「CurrentPoint」屬性的Storyboard與DoubleAnimation來爲我的路徑設置動畫。

1

如果多段線總是朝一個大方向行進,那麼您可以將附加到您的plinePath的剪切矩形設置爲動畫,以便平滑地將其展示。

您使用其他「繪製」方法的問題是,各個線段需要沿着其範圍的長度逐個調整大小。這是不平凡的,但可能的。對於繪製的恆定速度與需要爲每個片段計算的內插X & Y存在問題。基本上採用線段長度(每段),然後在由線段長度確定的時間內將end-x和end-y線性內插到它們的最終位置。