silverlight - 动画路径填充 - Silverlight

标签 silverlight animation silverlight-4.0

给定贝塞尔曲线的闭合路径,我将如何为它填充动画。填充必须是非线性的 - 围绕一个锐角流动,而不仅仅是一个平面露出填充的颜色。

在这一点上,我假设我必须使用 WriteableBitmap 并自己完成所有工作。想法?

最佳答案

从中心开始并向外扩散的 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>

关于silverlight - 动画路径填充 - Silverlight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4898566/

相关文章:

ios - UItableview从下往上重新加载动画

Silverlight 4,浏览器外,打印,自动更新

c# - 让 ObservableCollection 触发更新

silverlight - 关于 silverlight 的一般问题...类实例和共享内存

ios - UIView 表面自定义转换/动画(如 'a water drop effect' )

c# - 将 json 字符串反序列化为对象 - Silverlight

silverlight-4.0 - 使用Rx对Bing map 中的地址进行地址解析

silverlight - Caliburn Entity DataBinding 有趣

vb.net - Silverlight DataGrid 控件 - 如何停止对列进行排序?

jquery 切换带有动画的 div