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
状態 間の遷移に VisualTransition を 使用する場合は true。それ以外の場合は false。
戻り値
bool
コントロールが新しい状態に正常に移行した場合は true。それ以外の場合は false。
注釈
この API は、カスタム VisualStateManager 動作を定義するシナリオの一部です。 GoToStateCore をオーバーライドすると、カスタム クラスの動作の状態の動作が変更されます。
カスタム VisualStateManager クラスを参照するには、カスタム VisualStateManager クラスの動作を使用するコントロール テンプレート内で VisualStateManager.CustomVisualStateManager 添付プロパティの値を設定します。 通常、Application.Resources の既定の XAML 構築を使用して、カスタム VisualStateManager クラスのインスタンスを作成します。 その後、VisualStateManager.CustomVisualStateManager 添付プロパティは、カスタム VisualStateManager リソースのキーへの {StaticResource} マークアップ拡張参照を使用して設定されます。
継承者へのメモ
カスタム VisualStateManager クラスのコンシューマーが GoToState を呼び出してコントロールのビジュアル状態を変更すると、これはオーバーライドする既定の動作です。+ stateName によって名前が付けられた VisualState にストーリーボードがある場合、ストーリーボードが開始されます。
- 新しく要求された状態より前にコントロールが使用していた VisualState に ストーリーボードがある場合、そのストーリーボードは停止します。 stateName の VisualState がグループに存在しない場合、実装は false を返す必要があります。
コントロールが stateName として要求された VisualState に既に存在する場合、実装は true を返す必要があります。
既定の動作の詳細については、「 GoToState」を参照してください。
ビジュアル状態の変更に関するイベント
CurrentStateChanging は、 GoToState 呼び出しの要求に応じて、コントロールが状態の遷移を開始したときに発生します。 状態の変更に VisualTransition が適用されている場合、このイベントは遷移の開始時に発生します。
CurrentStateChanged は、新しいストーリーボードが開始されるのと同じように、GoToState 呼び出しによって要求された状態のコントロールの後に発生します。 新しいストーリーボードの完了時にイベントは発生しません。
VisualTransition が適用されていない場合、CurrentStateChanging と CurrentStateChanged は連続して起動しますが、両方が発生した場合は、その順序で保証されます。
ただし、新しい GoToState 呼び出しによって状態変更の遷移が中断された場合、最初の状態遷移に対して CurrentStateChanged イベントは発生しません。 次に要求された状態変更に対して新しいイベント シリーズが発生します。
RaiseCurrentStateChanged と RaiseCurrentStateChanging の動作のオーバーライドは省略可能です。既定の実装によってイベントが発生する方法とタイミングは、カスタム クラスに適している可能性があります。