次の方法で共有


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

戻り値

Boolean

bool

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

注釈

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

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

継承者へのメモ

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

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

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

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

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

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

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

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

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

適用対象

こちらもご覧ください