VisualStateManager.GoToStateCore Метод

Определение

При переопределении в производном классе перемещает элемент управления между состояниями.

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

Элемент управления, переводимый из одного состояния в другое.

stateName
String

Имя состояния, в которое требуется перейти.

group
VisualStateGroup

VisualStateGroup, к которой принадлежит состояние.

state
VisualState

Представление состояния, в которое требуется перейти.

useTransitions
Boolean

bool

Значение true для перехода между состояниями с помощью VisualTransition ; в противном случае — значение false.

Возвращаемое значение

Boolean

bool

Значение true , если элемент управления успешно переходит в новое состояние; в противном случае — значение false.

Комментарии

Этот API является частью сценария определения пользовательского поведения VisualStateManager . Переопределение GoToStateCore изменяет поведение состояния в пользовательском поведении класса.

Чтобы сослаться на пользовательский класс VisualStateManager , задайте значение присоединенного свойства VisualStateManager.CustomVisualStateManager в любом шаблоне элемента управления, в котором требуется использовать пользовательское поведение класса VisualStateManager . Обычно создается экземпляр настраиваемого класса VisualStateManager с помощью конструкции XAML по умолчанию в Application.Resources. Затем присоединенное свойство VisualStateManager.CustomVisualStateManager задается с помощью ссылки на расширение разметки {StaticResource} на ключ настраиваемого ресурса VisualStateManager .

Примечания к наследуемым

Когда потребитель пользовательского класса VisualStateManager вызывает GoToState для изменения визуального состояния элемента управления, это поведение по умолчанию, которое вы переопределяете:+ Если VisualState как именованный с помощью stateName имеет раскадровку, начинается раскадровка.

  • Если visualState , который использовался элементом управления до запрошенного состояния, имеет раскадровку, эта раскадровка останавливается. Если VisualState для stateName не существует в группе, реализация должна возвращать значение false.

Если элемент управления уже находится в VisualState , запрошенном как stateName, реализация должна вернуть значение true.

Дополнительные сведения о поведении по умолчанию см. в разделе GoToState.

События для изменения визуального состояния

CurrentStateChanging срабатывает, когда элемент управления начинает переходить состояния в соответствии с запросом вызова GoToState . Если visualTransition применяется к изменению состояния, это событие возникает при начале перехода.

CurrentStateChanged срабатывает после того, как элемент управления находится в состоянии, запрошенном вызовом GoToState , так же, как начинается новая раскадровка . Событие не запускается при завершении новой раскадровки.

Если VisualTransition не применяется, CurrentStateChanging и CurrentStateChanged срабатывает в быстром последовательности, но гарантируется в этом порядке, если они происходят.

Однако если переход изменения состояния прерывается новым вызовом GoToState , событие CurrentStateChanged никогда не вызывается для первого перехода состояния. Новый ряд событий активируется для следующего запрошенного изменения состояния.

Переопределение поведения RaiseCurrentStateChanged и RaiseCurrentStateChanging является необязательным: как и когда события вызываются реализацией по умолчанию, могут быть адекватными для пользовательского класса.

Применяется к

См. также раздел