2016-11-29 4 views
0

Ich möchte eine ColorAnimation für die FillColor-Eigenschaft eines MapPolygon verwenden.Animieren der Füllfarbe von MapPolygon (BingMap MapControl) UWP

habe ich eine HeatMap mit dem BingMap Steuerung für UWP Heatmap Preview

ich eine Funktion habe, wo ich eine neue FillColor für jede MapPolygon berechnen. Ich möchte jetzt eine ColorAnimation verwenden, anstatt nur die FillColor von dem alten Wert auf den neuen Wert zu ändern.

//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(); 

Aber mit dem Storyboard-Code habe ich immer eine System.Runtime.InteropServices.COMException, die mir das Animations Ziel nicht angegeben erzählt.

Ich habe eine Menge Werte für den zweiten Parameter der Storyboard.SetTargetproperty versucht ... nichts hat funktioniert.

Was fehlt mir?

Antwort

1

Es gibt zwei Probleme.

In dem von Ihnen geposteten Code-Snippet verwenden Sie myStoryboard in SetTarget anstelle der storyboard Variable. Das scheint die COMException zu beheben. Aber die Polygonfarbe wird immer noch nicht animiert.

Der Grund ist, dass die FillColor Eigenschaft keine DependencyProperty ist. So aktivieren Sie Animation dieser Eigenschaft werden Sie abhängig Animation auf die Animation aktivieren müssen, bevor Sie die Storyboard Start:

animation.EnableDependentAnimation = true; 

Der Unterschied zwischen abhängigen und unabhängigen Animationen ist described in MSDN documentation. Beachten Sie, dass die Leistung dieser Animation möglicherweise etwas schlechter ist als bei unabhängigen Animationen.

+0

thx viel :) es hat jetzt funktioniert. Das myStoryboard in SetTarget war ein Storyboard, das ich in der XAML erstellt hatte, und vergaß es zu ändern. – David198

Verwandte Themen