語言

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類別行為的控制範本中,設定 VisualStateManager.CustomVisualStateManager 附加屬性的值。 你通常透過 Application.Resources 的預設 XAML 建構來建立自訂VisualStateManager類別的實例。 接著,附加屬性 VisualStateManager.CustomVisualStateManager 會透過 {StaticResource} 標記擴充名 來設定自訂資源的 VisualStateManager 鍵。

繼承者備註

當你自訂的 VisualStateManager 類別的使用者呼叫 GoToState 來更改控制項的視覺狀態時,這是你預設覆蓋的行為;如果 所stateName命名的 VisualState 有故事板,故事板就會開始。

  • 如果控制在新請求狀態前使用的 視覺狀態 有 分鏡,該分鏡就會停止。
  • 如果 中沒有 group的 stateNameVisualState,你的實作應該會回傳 false。
  • 如果控制項已經在請求stateName的 VisualState 中,你的實作應該會回傳 true。

關於預設行為的更多資訊,請參見 GoToState。

視覺狀態變化事件

當控制項開始依照 GoToState 呼叫的要求轉換狀態時,CurrentStateChanging 會觸發。 若對狀態變更套用 VisualTransition ,則此事件會在轉換開始時發生。

CurrentStateChanged 會在控制項進入狀態後,依照 GoToState 呼叫的要求觸發,正好在新 故事板 開始時。 新分鏡完成時不會觸發任何事件。

若未套用 VisualTransition,CurrentStateChanging 與 CurrentStateChanged 會連續觸發,但若兩者同時發生,則保證依此順序觸發。

然而,若狀態變更轉換被新的 GoToState 呼叫中斷,第一個狀態轉換時不會觸發 CurrentStateChanged 事件。 下一個請求的州變更會觸發一個新的事件系列。

覆蓋 RaiseCurrentStateChanged 和 RaiseCurrentStateChanging 的行為是可選的:預設實作如何以及何時觸發事件,可能已經足夠適用於你的自訂類別。

適用於

另請參閱