2012-11-02 34 views
1

我有多個點,並且我想繪製線條將點與WPF連接起來,但我希望看到它們緩慢繪製,並且我需要以編程方式進行繪製,我該怎麼做?
謝謝。使用wpf以編程方式「緩慢」繪製線條

+1

我們是在談論straigt線還是你還需要曲線?對於直線看看http://stackoverflow.com/questions/12393908/generating-animated-line/12396055#12396055 –

+0

這些線軸平行或任意角度?在第一種情況下,您可能會爲每次增量繪製小部分線條而脫身。如果他們有任意傾向,那麼事情會變得更加複雜。 –

+0

只是直線 – Ruba

回答

0

你可以嘗試這樣的事情:

<Grid> 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="MouseDown"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
        <Storyboard TargetName="MyLine"> 
         <DoubleAnimation Storyboard.TargetProperty="X2" To="100" Duration="0:0:5"/> 
         <DoubleAnimation Storyboard.TargetProperty="Y2" To="100" Duration="0:0:5"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
     </EventTrigger> 
    </Grid.Triggers> 
     <Line X1="10" Y1="10" X2="20" Y2="20" Stroke="Black" Name="MyLine"/> 
</Grid> 

當你點擊就行了,你會看到它成長。您可以將此故事板附加到您想要的任何事件或代碼上,我只是使用mousedown進行演示。

如果你想畫多條,你可以做這樣的事情:

<Grid> 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="Loaded"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation Storyboard.TargetName="Line1" Storyboard.TargetProperty="X2" To="100" Duration="0:0:5"/> 
         <DoubleAnimation Storyboard.TargetName="Line1" Storyboard.TargetProperty="Y2" To="100" Duration="0:0:5"/> 
         <DoubleAnimation Storyboard.TargetName="Line2" Storyboard.TargetProperty="X2" To="200" Duration="0:0:5" BeginTime="0:0:5"/> 
         <DoubleAnimation Storyboard.TargetName="Line2" Storyboard.TargetProperty="Y2" To="0" Duration="0:0:5" BeginTime="0:0:5"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
     </EventTrigger> 
    </Grid.Triggers> 
     <Line X1="10" Y1="10" X2="10" Y2="10" Stroke="Black" Name="Line1"/> 
    <Line X1="100" Y1="100" X2="100" Y2="100" Stroke="Black" Name="Line2"/> 
</Grid> 

,當然,它很可能要構建移動這些故事板,如果你不能提前宣佈他們時間在XAML。

+1

非常感謝,但我想從代碼做到,並且我在這個鏈接http: //stackoverflow.com/questions/12393908/generating-animated-line/12396055#12396055 – Ruba