我想在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
的第二个参数尝试了很多值......没有任何效果。
我错过了什么?
答案 0 :(得分:2)
有两个问题。
在您发布的代码段中,您使用SetTarget
中的storyboard
代替COMException
变量。修复似乎解决了FillColor
。但多边形颜色仍然没有动画。
原因是DependencyProperty
属性不是Storyboard
。要启用此属性的动画,您必须在开始animation.EnableDependentAnimation = true;
之前在动画上启用相关动画:
{{1}}
依赖和独立动画之间的差异是described in MSDN documentation。请注意,此动画的性能可能比独立动画的性能稍差。