Я создал раскадровку в C # для анимации преобразования масштаба на холсте. Преобразование масштаба является преобразованием макета. Вот мой код C # для анимации:
Storyboard Configuring = new Storyboard();
if (NexusRoot != null)
{
var current = (NexusRoot.LayoutTransform as ScaleTransform).ScaleX;
Duration duration = new Duration(TimeSpan.FromSeconds(1));
DoubleAnimation myDoubleAnimation1 = new DoubleAnimation();
myDoubleAnimation1.Duration = duration;
Configuring.Children.Add(myDoubleAnimation1);
myDoubleAnimation1.From = current;
myDoubleAnimation1.To = scale;
Storyboard.SetTarget(myDoubleAnimation1, NexusRoot);
Storyboard.SetTargetProperty(myDoubleAnimation1, (PropertyPath)new PropertyPathConverter().ConvertFromString("(UIElement.LayoutTransform).(ScaleTransform.ScaleX)"));
DoubleAnimation myDoubleAnimation2 = new DoubleAnimation();
myDoubleAnimation2.Duration = duration;
Configuring.Children.Add(myDoubleAnimation2);
myDoubleAnimation2.From = current;
myDoubleAnimation2.To = scale;
Storyboard.SetTargetName(myDoubleAnimation2, "NexusRoot");
Storyboard.SetTargetProperty(myDoubleAnimation2, (PropertyPath)new PropertyPathConverter().ConvertFromString("(UIElement.LayoutTransform).(ScaleTransform.ScaleY)"));
}
Когда я запускаю эту анимацию, она выдает следующее исключение.
System.ArgumentNullException был
поймано сообщение = "значение не может быть
null. \ r \ nИмя параметра: dp "
Source = "WindowsBase" ParamName = "dp"
Трассировки стека:
в System.Windows.DependencyObject.GetValue (DependencyProperty
дп)
в System.Windows.Media.Animation.Storyboard.ProcessComplexPath (HybridDictionary
clockMappings, DependencyObject
targetObject, путь к PropertyPath,
AnimationClock animationClock,
HandoffBehavior handoffBehavior, Int64
слой)
в System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive (Clock
currentClock, DependencyObject
содержащая объект, INameScope
nameScope, DependencyObject
parentObject, String parentObjectName,
PropertyPath parentPropertyPath,
HandoffBehavior handoffBehavior,
HybridDictionary ClockMappings, Int64
слой)
в System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive (Clock
currentClock, DependencyObject
содержащая объект, INameScope
nameScope, DependencyObject
parentObject, String parentObjectName,
PropertyPath parentPropertyPath,
HandoffBehavior handoffBehavior,
HybridDictionary ClockMappings, Int64
слой)
в System.Windows.Media.Animation.Storyboard.BeginCommon (DependencyObject
содержащая объект, INameScope
nameScope, HandoffBehavior
handoffBehavior, Boolean
isControllable, слой Int64)
в System.Windows.Media.Animation.Storyboard.Begin ()
в StormFront.NexusDesigner.ScaleCanvasAnimation (Double
масштаб) в C: \ Документы и
Настройки \ lbeaver \ Desktop \ StormFront \ WPF \ StormFront \ StormFront \ NexusDesigner.xaml.cs: линия
544 InnerException:
Как мне остановить это исключение?