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

状態 間の遷移に VisualTransition を 使用する場合は true。それ以外の場合は false

戻り値

Boolean

bool

コントロールが新しい状態に正常に移行した場合は true。それ以外の場合は false

注釈

この API は、カスタム VisualStateManager 動作を定義するシナリオの一部です。 GoToStateCore をオーバーライドすると、カスタム クラスの動作の状態の動作が変更されます。

カスタム VisualStateManager クラスを参照するには、カスタム VisualStateManager クラスの動作を使用するコントロール テンプレート内で VisualStateManager.CustomVisualStateManager 添付プロパティの値を設定します。 通常、Application.Resources の既定の XAML 構築を使用して、カスタム VisualStateManager クラスのインスタンスを作成します。 その後、VisualStateManager.CustomVisualStateManager 添付プロパティは、カスタム VisualStateManager リソースのキーへの {StaticResource} マークアップ拡張参照を使用して設定されます。

継承者へのメモ

カスタム VisualStateManager クラスのコンシューマーが GoToState を呼び出してコントロールのビジュアル状態を変更すると、これはオーバーライドする既定の動作です。+ stateName によって名前が付けられた VisualStateストーリーボードがある場合、ストーリーボードが開始されます。

  • 新しく要求された状態より前にコントロールが使用していた VisualStateストーリーボードがある場合、そのストーリーボードは停止します。 stateNameVisualStateグループに存在しない場合、実装は false を返す必要があります。

コントロールが stateName として要求された VisualState に既に存在する場合、実装は true を返す必要があります。

既定の動作の詳細については、「 GoToState」を参照してください。

ビジュアル状態の変更に関するイベント

CurrentStateChanging は、 GoToState 呼び出しの要求に応じて、コントロールが状態の遷移を開始したときに発生します。 状態の変更に VisualTransition が適用されている場合、このイベントは遷移の開始時に発生します。

CurrentStateChanged は、新しいストーリーボードが開始されるのと同じように、GoToState 呼び出しによって要求された状態のコントロールの後に発生します。 新しいストーリーボードの完了時にイベントは発生しません。

VisualTransition が適用されていない場合、CurrentStateChangingCurrentStateChanged は連続して起動しますが、両方が発生した場合は、その順序で保証されます。

ただし、新しい GoToState 呼び出しによって状態変更の遷移が中断された場合、最初の状態遷移に対して CurrentStateChanged イベントは発生しません。 次に要求された状態変更に対して新しいイベント シリーズが発生します。

RaiseCurrentStateChanged と RaiseCurrentStateChanging の動作オーバーライドは省略可能です。既定の実装によってイベントが発生する方法とタイミングは、カスタム クラスに適している可能性があります。

適用対象

こちらもご覧ください