Entwickler-Ecke

WPF / Silverlight - Change Storyboard Target


ebber - Mo 09.04.12 19:09
Titel: Change Storyboard Target
Hallo,

ich habe eine Storyboard erstellt und möchte diese gerne auf unterschiedliche Elemente Anweden:


XML-Daten
1:
2:
3:
4:
5:
    <Storyboard x:Key="StoryBo" AutoReverse="True">
      <ColorAnimationUsingKeyFrames ... Storyboard.TargetName="Button1">
        ...
      </ColorAnimationUsingKeyFrames>
    </Storyboard>


Ich sollte wohl die TargetName Eigenschaft verändern? und dann sollte es gehen? Leider habe ich keinen weg gefunden, wie ich an die Eigenschaft kommen. Ich möchte das ganze im C# code verändern.

MfG


Christian S. - Mo 09.04.12 19:23

Hi!

In der Doku zur Storyboard-Klasse [http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard.targetname.aspx] gibt's weiter unten einen C#-Code, der zeigt, wie man TargetName und TargetProperty setzen kann.

Grüße,
Christian


ebber - Mo 09.04.12 19:49

Danke, aber ich werde irgendwie nicht schlau daraus. Das Beste was ich zusammengebracht habe ist das:


C#-Quelltext
1:
2:
3:
Storyboard storyB = (Storyboard)FindResource("StoryBo");
Storyboard.SetTargetName(storyB.Children[0as ColorAnimationUsingKeyFrames, Button2.Name);
storyB.Begin();


Leider wird die Storyboard dann auf alle meinen Buttons angewendet und nicht nur auf Button2 !?!
Vielleicht bin ich hier aber auch völlig falsch dran?


ebber - Di 10.04.12 23:18

Ich habe das Problem gefunden. Die Eigenschaft die verändert wurde war die Farbe des Buttons. Die Farbe war eine Resource die alle Buttons hatten. So hat sich das wohl auf alle übertragen.

Also funktioniert es so wie ich vorher geschrieben habe.

Danke nochmal.