Bagikan melalui


VisualStateManager.GoToState Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Transitions the control between two states.

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

Syntax

'Declaration
Public Shared Function GoToState ( _
    control As Control, _
    stateName As String, _
    useTransitions As Boolean _
) As Boolean
public static bool GoToState(
    Control control,
    string stateName,
    bool useTransitions
)

Parameters

Return Value

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

Exceptions

Exception Condition
ArgumentNullException

control is nulla null reference (Nothing in Visual Basic).

ArgumentNullException

stateName is nulla null reference (Nothing in Visual Basic).

Remarks

The GoToStateCore method performs the logic necessary to appropriately start and stop the storyboards that are associated with a transition. When a control calls GoToState to change its state, the VisualStateManager does the following:

  • First, if the VisualState that the control is going to has a Storyboard, the storyboard begins. Then, if the VisualState that the control is coming from has a Storyboard, the storyboard ends.

  • If the control is already in the stateName state, GoToState takes no action returns true.

  • If stateName doesn't exist in the ControlTemplate of control, GoToState takes no action and returns false.

Examples

The following example demonstrates a control using the GoToStateCore method to transition between states. For the entire example, see How to: Create a New Control by Creating a ControlTemplate.

Private Sub UpdateStates(ByVal useTransitions As Boolean)
    If Value >= 0 Then
        VisualStateManager.GoToState(Me, "Positive", useTransitions)
    Else
        VisualStateManager.GoToState(Me, "Negative", useTransitions)
    End If

    If isFocused Then
        VisualStateManager.GoToState(Me, "Focused", useTransitions)
    Else
        VisualStateManager.GoToState(Me, "Unfocused", useTransitions)
    End If

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

    if (isFocused)
    {
        VisualStateManager.GoToState(this, "Focused", useTransitions);
    }
    else
    {
        VisualStateManager.GoToState(this, "Unfocused", useTransitions);
    }

}

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.