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
Элемент управления, переводимый из одного состояния в другое.
- 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.CustomVisualStateManager в любом шаблоне элемента управления, в котором требуется использовать поведение пользовательского VisualStateManager
класса. Как правило, экземпляр пользовательского VisualStateManager
класса создается с помощью конструкции XAML по умолчанию в Application.Resources. Затем присоединенное VisualStateManager.CustomVisualStateManager
свойство задается с помощью ссылки расширения разметки {StaticResource} на ключ настраиваемого VisualStateManager
ресурса.
Примечания к наследутелям
Когда потребитель настраиваемого класса VisualStateManager вызывает GoToState для изменения визуального состояния элемента управления, это поведение по умолчанию, которое вы переопределяете.+ Если visualState с именем stateName
имеет раскадровки, раскадровка начинается.
- Если объект VisualState , который использовался элементом управления до нового запрошенного состояния, имеет раскадровки, эта раскадровка останавливается.
- Если VisualState для
stateName
не существует вgroup
, реализация должна возвращатьfalse
. - Если элемент управления уже находится в VisualState, запрошенном как
stateName
, реализация должна вернуть .true
Дополнительные сведения о поведении по умолчанию см. в разделе GoToState.
События для изменения визуального состояния
CurrentStateChanging срабатывает, когда элемент управления начинает переходить состояния в соответствии с запросом вызова GoToState . Если к изменению состояния применяется элемент VisualTransition , это событие возникает при начале перехода.
CurrentStateChanged срабатывает после того, как элемент управления находится в состоянии, запрошенном вызовом GoToState , так же, как начинается новая раскадровка . При завершении новой раскадровки событие не срабатывает.
Если VisualTransition не применяется, CurrentStateChanging и CurrentStateChanged запускаются в быстрой последовательности, но гарантируются в этом порядке, если они происходят.
Однако если переход на изменение состояния прерывается новым вызовом GoToState , событие CurrentStateChanged никогда не вызывается для первого перехода состояния. Для следующего запрошенного изменения состояния запускается новый ряд событий.
Переопределение поведения RaiseCurrentStateChanged и RaiseCurrentStateChanging является необязательным: то, как и когда события вызываются реализацией по умолчанию, может быть достаточно для пользовательского класса.