VisualStateManager.GoToState(FrameworkElement, String, Boolean) 方法

定义

在控件的两种状态之间转换。 使用此方法转换具有 ControlTemplate 的控件的状态。

public:
 static bool GoToState(System::Windows::FrameworkElement ^ control, System::String ^ stateName, bool useTransitions);
public static bool GoToState (System.Windows.FrameworkElement control, string stateName, bool useTransitions);
static member GoToState : System.Windows.FrameworkElement * string * bool -> bool
Public Shared Function GoToState (control As FrameworkElement, stateName As String, useTransitions As Boolean) As Boolean

参数

control
FrameworkElement

要进行状态过渡的控件。

stateName
String

要转换到的状态。

useTransitions
Boolean

要使用 VisualTransition 对象进行状态切换,则为 true;否则为 false

返回

如果控件已成功过渡到新状态,则为 true;否则为 false

例外

controlnull

- 或 -

stateNamenull

示例

以下示例演示使用 GoToState 方法在状态之间转换的控件。 有关整个示例,请参阅 创建具有可自定义外观的控件

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);
    }
}
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

注解

GoToState如果要更改在其 中使用 中的 的控件中的ControlTemplate状态,VisualStateManager请调用 方法。 GoToElementState调用 方法以更改 (外部ControlTemplate的元素上的状态,例如,如果在 或单个元素) 中使用 VisualStateManagerUserControl

适用于