1

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

我使用BingMapUWP 热图预览控件创建了一个热图

我有一个函数,我在其中FillColor为每个MapPolygon. 我现在想使用 aColorAnimation而不仅仅是将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没有任何效果。

我错过了什么?

4

1 回答 1

2

有两个问题。

在您发布的代码片段中,您使用的是myStoryboardinSetTarget而不是storyboard变量。修复似乎可以解决COMException. 但多边形颜色仍然不会动画。

原因是该FillColor属性不是DependencyProperty. 要启用此属性的动画,您必须在启动动画之前启用依赖动画Storyboard

animation.EnableDependentAnimation = true;

MSDN 文档中描述了依赖动画和独立动画之间的区别。请注意,此动画的性能可能比独立动画稍差。

于 2016-11-29T19:42:41.247 回答