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 smile_sad

Technorati Tags: