VisualStateManager.GoToStateCore 方法

定义

使控件在状态间过渡。

protected:
 virtual bool GoToStateCore(System::Windows::FrameworkElement ^ control, System::Windows::FrameworkElement ^ stateGroupsRoot, System::String ^ stateName, System::Windows::VisualStateGroup ^ group, System::Windows::VisualState ^ state, bool useTransitions);
protected virtual bool GoToStateCore (System.Windows.FrameworkElement control, System.Windows.FrameworkElement stateGroupsRoot, string stateName, System.Windows.VisualStateGroup group, System.Windows.VisualState state, bool useTransitions);
abstract member GoToStateCore : System.Windows.FrameworkElement * System.Windows.FrameworkElement * string * System.Windows.VisualStateGroup * System.Windows.VisualState * bool -> bool
override this.GoToStateCore : System.Windows.FrameworkElement * System.Windows.FrameworkElement * string * System.Windows.VisualStateGroup * System.Windows.VisualState * bool -> bool
Protected Overridable Function GoToStateCore (control As FrameworkElement, stateGroupsRoot As FrameworkElement, stateName As String, group As VisualStateGroup, state As VisualState, useTransitions As Boolean) As Boolean

参数

control
FrameworkElement

要进行状态过渡的控件。

stateGroupsRoot
FrameworkElement

包含 VisualStateManager 的根元素。

stateName
String

要过渡到的状态的名称。

group
VisualStateGroup

状态所属的 VisualStateGroup

state
VisualState

要过渡到的状态的表示形式。

useTransitions
Boolean

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

返回

Boolean

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

注解

该方法 GoToStateCore 执行适当启动和停止与切换关联的情节提要所需的逻辑。 当控件调用 GoToState 以更改其状态时,VisualStateManager 会执行以下操作:

  • 首先,如果 VisualState 控件正在过渡到有一个 Storyboard,则情节提要开始。 那么,如果控件即将退出的 VisualState 具有 Storyboard,则情节提要会结束。

  • 如果控件已处于 stateName 状态, GoToState 则不执行任何操作并返回 true

  • 如果 stateName 不存在于 ControlTemplate 其中 controlGoToState 则不执行任何操作并返回 false

你可以实现自己的 VisualStateManager 逻辑,以提供不同的逻辑来在状态之间转换。 例如,可以更改前面所述的逻辑,也可以提供在自定义动画类型之间进行转换的逻辑。 若要实现, VisualStateManager请创建继承自 VisualStateManager 方法并重写方法的 GoToStateCore 类。 若要使用自定义类,请将 CustomVisualStateManager 属性设置为自定义类型的对象。

适用于