J'ai la construction ci-dessous et il fonctionne:Pourquoi la valeur Storyboard ne serait pas obtenue à partir d'une ressource ou d'une liaison?
<Storyboard x:Key="GrowOnStart">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(Canvas.Left)" Storyboard.TargetName="window">
<EasingDoubleKeyFrame KeyTime="0" Value="1024"/>
Pourquoi cela ne fonctionne pas si je tente quelque chose comme ceci:
<EasingDoubleKeyFrame KeyTime="0" Value="{DynamicResource StartingPositionLeft}"/>
Et oui, je définissais la ressource avant que le story-board. Et la déclaration comme la suivante ne fonctionnerait pas non plus:
<EasingDoubleKeyFrame KeyTime="0" Value="{Binding StartingPositionLeft}"/>
Et oui, il est une propriété publique sur le code derrière et this.DataContext ensemble à ce .
Oui, semble le seul moyen de modifier le storyboard dans le code derrière. var sb = (Storyboard) Ressources ["GrowOnStart"]; var anim = (DoubleAnimationUsingKeyFrames) sb.Children [0]; anim.KeyFrames [0] .Valeur = 100; – Agzam
Dans le code derrière, vous devriez être en mesure d'obtenir la valeur à laquelle vous voulez vous lier (au lieu de faire des valeurs codées en dur). Par exemple, en utilisant vos exemples, vous pouvez faire quelque chose comme anim.KeyFrames [0] .Value = this.StartingPositionLeft (ou toute autre propriété à laquelle vous voulez vous lier), ou vous pouvez utiliser FindResource pour trouver et obtenir la valeur de DynamicResource (ou StaticResource) que vous vouliez utiliser à l'origine. –