沿路径设置组合几何体的动画

时间:2014-02-02 13:16:25

标签: wpf geometry animated

我有WPF / VB应用程序,使用点动画沿路径动画椭圆几何体。我根据this MSDN example使用了PointAnimationUsingPath和Storyboard,效果很好。

我现在想在椭圆内显示一个数字。为此,我创建了一个组合几何体,并将我的椭圆设置为geometry1。然后我为我的数字创建了一个formattedtext(...)。buildgeometry,并将其设置为geometry2。像这样:

Dim CarGeo AS New CombinedGeometry()
CarGeo.Geometry1 = New EllipseGeometry(StartPoint, 5, 5)
CarGeo.Geometry2 = New FormattedText(carIndex.ToString, System.Globalization.CultureInfo.GetCultureInfo("en-us"), Windows.FlowDirection.LeftToRight, New Typeface("Veranda"), 7, Brushes.White).BuildGeometry(New Point(StartPoint.X - 4, StartPoint.Y - 4))

生成的几何图形正是我想要的。

问题是我似乎无法沿着路径设置此几何体的动画,因为与椭圆不同,组合几何体中没有中心属性可将目标属性设置为StoryBoard。

' Create a PointAnimationgUsingPath to move the car along the animation path.
cpAnimation = New PointAnimationUsingPath
cpAnimation.PathGeometry = pgSectorPath(intSector)
cpAnimation.Duration = timDuration
' Set the animation to target the Center property of the EllipseGeometry
Storyboard.SetTargetName(cpAnimation, "CarGeo")
Storyboard.SetTargetProperty(cpAnimation, New PropertyPath(EllipseGeometry.CenterProperty))

我可以使用组合几何中的属性来制作动画吗? 如果没有,我可以将几何图形包装在可以设置动画的其他内容中吗?

我对WPF很新,浪费了太多时间寻找答案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

只需将CombinedGeometry包装到Path对象中,就像在MS示例中一样:

http://msdn.microsoft.com/en-us/library/system.windows.media.combinedgeometry(v=vs.110).aspx