如何为MapPolygon(BingMap MapControl)UWP的FillColor设置动画

时间:2016-11-29 14:42:55

标签: c# uwp bing-maps uwp-maps

我想在MapPolygon的FillColor属性上使用ColorAnimation。

我使用BingMap UWP控件创建了一个HeatMap Heatmap Preview

我有一个函数,我为每个FillColor计算一个新的MapPolygon。我现在想要使用ColorAnimation而不是仅将FillColor从旧值更改为新值。

//Instead of 
statePolygon.FillColor = backGroundColor;

//I want to use something like the following
Storyboard storyboard = new Storyboard();
ColorAnimation animation = new ColorAnimation();
animation.From = statePolygon.FillColor;
animation.To = newBackGroundColor;
animation.Duration = new Duration(new TimeSpan(0, 0, 0, 5));
storyboard.Children.Add(animation);
Storyboard.SetTargetProperty(animation, "(MapPolygon.FillColor)");
Storyboard.SetTarget(myStoryboard, statePolygon);
storyboard.Begin();

但是使用故事板代码我总是得到一个System.Runtime.InteropServices.COMException,它告诉我未指定动画目标。

我为Storyboard.SetTargetproperty的第二个参数尝试了很多值......没有任何效果。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

有两个问题。

在您发布的代码段中,您使用SetTarget中的storyboard代替COMException变量。修复似乎解决了FillColor。但多边形颜色仍然没有动画。

原因是DependencyProperty属性不是Storyboard。要启用此属性的动画,您必须在开始animation.EnableDependentAnimation = true; 之前在动画上启用相关动画:

{{1}}

依赖和独立动画之间的差异是described in MSDN documentation。请注意,此动画的性能可能比独立动画的性能稍差。