我有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很新,浪费了太多时间寻找答案。任何帮助将不胜感激。
答案 0 :(得分:0)
只需将CombinedGeometry包装到Path对象中,就像在MS示例中一样:
http://msdn.microsoft.com/en-us/library/system.windows.media.combinedgeometry(v=vs.110).aspx