Scopo: Muovere un elemento X dalla posizione “A” alla “B” usando l’oggetto VisualStateManager di WPF e Silverlight.
In tutti e tre i casi (WPF 3.5, WPF 4.0 e Silverlight X) lo XAML generato da Blend è esattamente lo stesso:
1: <Grid x:Name="LayoutRoot">
2: <VisualStateManager.VisualStateGroups>
3: <VisualStateGroup x:Name="States">
4: <VisualState x:Name="Normal"/>
5: <VisualState x:Name="Moved">
6: <cut…>
Il codice da utilizzare per passare nello stato “Moved” è:
WPF 3.5: *No way* la soluzione più semplice è utilizzare il behavior GotoStateAction (o l’estensione ad-hoc creata da Blend)
WPF 4.0: Usare VisualStateManager.GotoElementState(“LayoutRoot”,”Moved”,true);
Silverlight: VisualStateManager.GotoState(this,”Moved”,true);
In parole povere: Tre modi diversi per ottenere lo stesso risultato