Al escribir una ControlTemplate personalizada (XAML) para un control Win 8 Metro, necesitamos usar VisualStateManager para actualizar el control de acuerdo con las transiciones de VisualState. Veo la muestra a continuación en MSDN, pero no puedo encontrar dónde se documenta el "CommonStates" de VisualStateGroup y qué otros VisualStates se definen aparte de "PointerOver" y "Normal". ¿Tienes que ir a cavar en el SDK para encontrar el ControlTemplate predeterminado para un botón? ¿Si es así, donde?¿Dónde se documentan los posibles controles VisualStates para Windows 8 Metro?
<ControlTemplate TargetType="Button">
<Grid >
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<!--Take one half second to transition to the PointerOver state.-->
<VisualTransition To="PointerOver"
GeneratedDuration="0:0:0.5"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<!--Change the SolidColorBrush, ButtonBrush, to red when the
Pointer is over the button.-->
<VisualState x:Name="PointerOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ButtonBrush"
Storyboard.TargetProperty="Color" To="Red" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.Background>
<SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
</Grid.Background>
</Grid>
</ControlTemplate>
Ver también: http://stackoverflow.com/questions/10861160/control-styles-and-templates-for-windows-8-metro-ui –