VisualStateManager.GoToStateCore 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在派生类中重写时,在状态之间转换控件。
protected:
virtual bool GoToStateCore(Control ^ control, FrameworkElement ^ templateRoot, Platform::String ^ stateName, VisualStateGroup ^ group, VisualState ^ state, bool useTransitions) = GoToStateCore;
bool GoToStateCore(Control const& control, FrameworkElement const& templateRoot, winrt::hstring const& stateName, VisualStateGroup const& group, VisualState const& state, bool const& useTransitions);
protected virtual bool GoToStateCore(Control control, FrameworkElement templateRoot, string stateName, VisualStateGroup group, VisualState state, bool useTransitions);
function goToStateCore(control, templateRoot, stateName, group, state, useTransitions)
Protected Overridable Function GoToStateCore (control As Control, templateRoot As FrameworkElement, stateName As String, group As VisualStateGroup, state As VisualState, useTransitions As Boolean) As Boolean
参数
- control
- Control
要进行状态过渡的控件。
- templateRoot
- FrameworkElement
控件的 ControlTemplate 的根元素。
- stateName
-
String
Platform::String
winrt::hstring
要过渡到的状态的名称。
- group
- VisualStateGroup
状态所属的 VisualStateGroup 。
- state
- VisualState
要过渡到的状态的表示形式。
- useTransitions
-
Boolean
bool
true
使用 VisualTransition 在状态之间转换;否则为 false
。
返回
bool
true
如果控件成功转换为新状态,则为 ;否则为 false
。
注解
此 API 是定义自定义 VisualStateManager 行为的方案的一部分。 重写 GoToStateCore
会更改自定义类行为中的状态行为。
若要引用自定义 VisualStateManager 类,请在要使用自定义VisualStateManager
类行为的任意控件模板中设置 VisualStateManager.CustomVisualStateManager attached 属性的值。 通常通过 Application.Resources 中的默认 XAML 构造创建自定义类的实例VisualStateManager
。 然后,VisualStateManager.CustomVisualStateManager
使用对自定义VisualStateManager
资源的键的 {StaticResource} 标记扩展引用来设置附加属性。
继承者的注释
当自定义 VisualStateManager 类的使用者调用 GoToState 来更改控件的视觉状态时,这是要重写的默认行为:+ 如果命名为stateName
的 VisualState 具有 Storyboard,则情节提要将开始。
- 如果控件在新请求的状态之前使用的 VisualState 具有 Storyboard,该情节提要将停止。
- 如果 中
group
不存在 VisualState ,stateName
则实现应返回false
。 - 如果控件已作为 在 VisualState 中请求
stateName
,则实现应返回true
。
有关默认行为的详细信息,请参阅 GoToState。
视觉状态更改事件
当控件开始根据 GoToState 调用的请求转换状态时,CurrentStateChanging 将触发。 如果 VisualTransition 应用于状态更改,则转换开始时会发生此事件。
CurrentStateChanged 在控件处于 GoToState 调用请求的状态后触发,就像新的 Storyboard 开始一样。 新情节提要完成时不会触发任何事件。
如果未应用 VisualTransition , CurrentStateChanging 和 CurrentStateChanged 会快速连续触发,但如果两者都发生,则保证按该顺序运行。
但是,如果状态更改转换被新的 GoToState 调用中断,则不会为第一次状态转换引发 CurrentStateChanged 事件。 为下一个请求的状态更改触发新的事件系列。
替代 RaiseCurrentStateChanged 和 RaiseCurrentStateChanging 的行为是可选的:通过默认实现引发事件的方式和时间可能足以满足自定义类的需求。