Я пытаюсь преобразовать раскадровку XAML в код за раскадровкой.Но я получаю исключение
Cannot resolve all property references in the property path
'(UIElement.RenderTransform).(myTransformGroup.Children)[1].(TranslateTransform.Y)'.
Verify that applicable objects support the properties.
Я искал несколько сайтов, но они также делают это одинаково.Я не понимаю, где я иду не так.
XAML:
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="r1">
<EasingDoubleKeyFrame KeyTime="0" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="0.828"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.828"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="r1">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.4" Value="8.621"/>
<EasingDoubleKeyFrame KeyTime="0:0:1" Value="8.621"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
C # Код:
public void myAnimation(Rectangle myRectangle)
{
this.UnregisterName(myRectangle.Name);
ScaleTransform myScaleTransform = new ScaleTransform();
TranslateTransform myTranslateTransform = new TranslateTransform();
TransformGroup myTransformGroup = new TransformGroup();
myTransformGroup.Children.Add(myScaleTransform);
myTransformGroup.Children.Add(myTranslateTransform);
myRectangle.RenderTransform = myTransformGroup;
this.RegisterName(myRectangle.Name, myTransformGroup);
DoubleAnimationUsingKeyFrames myDoubleAnimationUsingKeyFrames = new DoubleAnimationUsingKeyFrames();
EasingDoubleKeyFrame myEasingDoubleKeyFrame = new EasingDoubleKeyFrame();
Storyboard myStoryboard = new Storyboard();
Storyboard.SetTargetName(myDoubleAnimationUsingKeyFrames, myRectangle.Name);
Storyboard.SetTargetProperty(myDoubleAnimationUsingKeyFrames, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"));
myEasingDoubleKeyFrame.KeyTime = KeyTime.FromPercent(0);
myEasingDoubleKeyFrame.Value = 1;
myDoubleAnimationUsingKeyFrames.KeyFrames.Add(myEasingDoubleKeyFrame);
myEasingDoubleKeyFrame.KeyTime = KeyTime.FromPercent(0.4);
myEasingDoubleKeyFrame.Value = 0.828;
myDoubleAnimationUsingKeyFrames.KeyFrames.Add(myEasingDoubleKeyFrame);
myEasingDoubleKeyFrame.KeyTime = KeyTime.FromPercent(1);
myEasingDoubleKeyFrame.Value = 0.828;
myDoubleAnimationUsingKeyFrames.KeyFrames.Add(myEasingDoubleKeyFrame);
myStoryboard.Children.Add(myDoubleAnimationUsingKeyFrames);
Storyboard.SetTargetName(myDoubleAnimationUsingKeyFrames, myRectangle.Name);
Storyboard.SetTargetProperty(myDoubleAnimationUsingKeyFrames, new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[1].(TranslateTransform.X)"));
myEasingDoubleKeyFrame.KeyTime = KeyTime.FromPercent(0);
myEasingDoubleKeyFrame.Value = 0;
myDoubleAnimationUsingKeyFrames.KeyFrames.Add(myEasingDoubleKeyFrame);
myEasingDoubleKeyFrame.KeyTime = KeyTime.FromPercent(0.4);
myEasingDoubleKeyFrame.Value = -17.5;
myDoubleAnimationUsingKeyFrames.KeyFrames.Add(myEasingDoubleKeyFrame);
myEasingDoubleKeyFrame.KeyTime = KeyTime.FromPercent(1);
myEasingDoubleKeyFrame.Value = 165.5;
myDoubleAnimationUsingKeyFrames.KeyFrames.Add(myEasingDoubleKeyFrame);
myStoryboard.Children.Add(myDoubleAnimationUsingKeyFrames);
myStoryboard.Begin(myRectangle);
}
Я думаю, проблема в Storyboard.SetTargetProperty