2011-02-04 14 views
3

閉じたパスのベジェ曲線を考えると、どのように塗りつぶしてアニメーション化するのですか?塗りつぶしは非線形でなければならず、塗りつぶした色。パス塗りつぶしをアニメートする - Silverlight

この時点で、私はWriteableBitmapを使用して、自分ですべて行う必要があると仮定しています。思考?

答えて

2

RadialBrushは中心から始まり外側に広がっているようです。例についてはKinectimalsウェブサイトの「着色ページ」セクションを参照してください。

有効な別の実装では、図形をPathのClipプロパティに適用し、StrokeThicknessプロパティを非常に大きな値にアニメートすることがあります。

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.Resources> 
     <Storyboard x:Name="FillShape"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.StrokeThickness)" Storyboard.TargetName="path"> 
      <EasingDoubleKeyFrame KeyTime="0:0:0.7" Value="118"> 
       <EasingDoubleKeyFrame.EasingFunction> 
        <CircleEase EasingMode="EaseOut"/> 
       </EasingDoubleKeyFrame.EasingFunction> 
      </EasingDoubleKeyFrame> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
    </Grid.Resources> 
    <Path x:Name="path" Data="M118,128 C182,300 238,342 330,252 C422,162 358,-40.000271 270,37.999855 C182,115.99998 118,128 118,128 z" Margin="117.5,19.95,264.563,181.398" Stretch="Fill" Stroke="Black" UseLayoutRounding="False" Clip="M0.4999969,108.05005 C64.500069,280.04974 120.50012,322.04968 212.50023,232.04984 C304.50034,142.04999 240.50026,-59.949921 152.50015,18.050066 C64.500069,96.050049 0.4999969,108.05005 0.4999969,108.05005 z" StrokeThickness="0"/> 
</Grid> 
+0

どういうわけか、このコメントを拝見してくれてありがとうございます。書き込み可能なビットマップを使用して、必要な効果を得ました。 – Thomas

関連する問題