Hallo allerseits,
in Adobe Flex gibt es states, mit den man zwischen verschiedenen Zuständen wechseln kann. Ich suche eine ähnliche Funktionalität in Silverlight. Hat jemand AHnung, ob es hier ein ähnliches Verfahren gibt?
Hallo allerseits,
in Adobe Flex gibt es states, mit den man zwischen verschiedenen Zuständen wechseln kann. Ich suche eine ähnliche Funktionalität in Silverlight. Hat jemand AHnung, ob es hier ein ähnliches Verfahren gibt?
Jap. Ist vorhanden.
<vsm:VisualStateManager.VisualStateGroups>
<vsm:VisualStateGroup x:Name="CommonStates">
<vsm:VisualStateGroup.Transitions>
<vsm:VisualTransition From="Normal"
GeneratedDuration="00:00:00.3000000"
To="MouseOver"/>
<vsm:VisualTransition From="MouseOver"
GeneratedDuration="00:00:00.3000000"
To="Pressed"/>
</vsm:VisualStateGroup.Transitions>
<vsm:VisualState x:Name="Normal">
<Storyboard>
<ColorAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="grid"
Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[1].
GradientStop.Color)">
<EasingColorKeyFrame KeyTime="00:00:00" Value="#FF281B18"/>
</ColorAnimationUsingKeyFrames>
<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000"
Storyboard.TargetName="grid"
Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].
(GradientStop.Color)">
<EasingColorKeyFrame KeyTime="00:00:00" Value="#FF000000"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</vsm:VisualState>
</vsm:VisualStateGroup>
</vsm:VisualStateManager.VisualStateGroups>
===============
Code-Erklärung:
===============
<vsm:VisualTransition From="Normal"
GeneratedDuration="00:00:00.3000000"
To="MouseOver"/>
Setzt die Animations-Dauer von Status "Normal" zu "MouseOver" auf 0.3 Secs.
============
============
<vsm:VisualState x:Name="Normal">
<Storyboard>
Ändert Das "Storyboard" also die Animationsabfolge des Status "Normal".
============
============
Storyboard.TargetName="grid"
Setzt das Ziel des Storyboards auf den NAMEN(!) "grid" also immer auf den x:Name="" bzw. x:Key="" verweisen nicht, auf Grid wenn es ein Grid ist. Also:
<Grid x:Name="Test"/>
Hier wäre der Code:
Storyboard.TargetName="Test"
============
============
Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[0].
(GradientStop.Color)"
<EasingColorKeyFrame KeyTime="00:00:00" Value="#FF000000"/>
Ändert die Eigenschaft Background des Targets(in diesem Fall ein Grid(s.o.)).
Genauer:
Es verändert den 1.([0]=1, [1]=2 usw.) GradientStop des Background-Verlaufs auf die Farbe "#FF000000".
============
============
Für alle Code-Erklärungen gilt: Endtag setzen!(außer das 1.: />
Sie müssen angemeldet sein, um einen Beitrag schreiben zu können.