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類別的實例。 接著,附加屬性 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 的行為是可選的:預設實作如何以及何時觸發事件,可能已經足夠適用於你的自訂類別。