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 연결된 속성의 값을 설정합니다. 일반적으로 Application.Resources에서 기본 XAML 생성을 통해 사용자 지정 VisualStateManager 클래스의 instance 만듭니다. 그런 다음, 사용자 지정 VisualStateManager 리소스의 키에 대한 {StaticResource} 태그 확장 참조를 사용하여 VisualStateManager.CustomVisualStateManager 연결된 속성이 설정됩니다.
상속자에 대한 참고 사항
사용자 지정 VisualStateManager 클래스의 소비자가 GoToState를 호출하여 컨트롤의 시각적 상태를 변경하는 경우 이는 재정의하는 기본 동작입니다.+ stateName에서 명명된 VisualState에 Storyboard가 있는 경우 스토리보드가 시작됩니다.
- 새로 요청된 상태 이전에 컨트롤이 사용하던 VisualState 에 Storyboard가 있는 경우 해당 스토리보드가 중지됩니다. stateName에 대한 VisualState가 그룹에 없는 경우 구현에서 false를 반환해야 합니다.
컨트롤이 stateName으로 요청된 VisualState에 이미 있는 경우 구현은 true를 반환해야 합니다.
기본 동작에 대한 자세한 내용은 GoToState를 참조하세요.
시각적 상태 변경에 대한 이벤트
CurrentStateChanging 은 GoToState 호출에서 요청한 대로 컨트롤이 상태를 전환하기 시작할 때 발생합니다. VisualTransition이 상태 변경에 적용되는 경우 이 이벤트는 전환이 시작될 때 발생합니다.
CurrentStateChanged는 새 Storyboard가 시작되는 것처럼 컨트롤이 GoToState 호출의 요청에 따라 상태가 된 후에 발생합니다. 새 스토리보드 완료 시 이벤트가 발생하지 않습니다.
VisualTransition이 적용되지 않으면 CurrentStateChanging 및 CurrentStateChanged가 연속해서 연속적으로 발생하지만 둘 다 발생하는 경우 해당 순서로 보장됩니다.
그러나 새 GoToState 호출로 인해 상태 변경 전환이 중단되는 경우 첫 번째 상태 전환에 대해 CurrentStateChanged 이벤트가 발생하지 않습니다. 다음 요청된 상태 변경에 대해 새 이벤트 시리즈가 발생합니다.
RaiseCurrentStateChanged 및 RaiseCurrentStateChanging의 동작을 재정의하는 것은 선택 사항입니다. 기본 구현에 의해 이벤트가 발생하는 방법과 시기는 사용자 지정 클래스에 적합할 수 있습니다.