This documentation is archived and is not being maintained.

VisualStateManager.GoToState Method

Transitions the control between two states. Use this method to transition states on control that has a ControlTemplate.

Namespace:  System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)

public static bool GoToState(
	FrameworkElement control,
	string stateName,
	bool useTransitions


Type: System.Windows.FrameworkElement
The control to transition between states.
Type: System.String
The state to transition to.
Type: System.Boolean
true to use a VisualTransition object to transition between states; otherwise, false.

Return Value

Type: System.Boolean
true if the control successfully transitioned to the new state; otherwise, false.


control is null.


stateName is null.

Call the GoToState method if you are changing states in a control that uses the VisualStateManager in its ControlTemplate. Call the GoToElementState method to change states on an element outside of a ControlTemplate (for example, if you use a VisualStateManager in a UserControl or in a single element).

The following example demonstrates a control that uses the GoToState method to transition between states. For the entire example, see Creating a Control That Has a Customizable Appearance.

private void UpdateStates(bool useTransitions)
    if (Value >= 0)
        VisualStateManager.GoToState(this, "Positive", useTransitions);
        VisualStateManager.GoToState(this, "Negative", useTransitions);

    if (IsFocused)
        VisualStateManager.GoToState(this, "Focused", useTransitions);
        VisualStateManager.GoToState(this, "Unfocused", useTransitions);


.NET Framework

Supported in: 4

.NET Framework Client Profile

Supported in: 4

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.