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 является необязательным: как и когда события создаются реализацией по умолчанию, могут быть подходящими для пользовательского класса.