共用方式為


在 WPF 控制項中新增或移除觸發程序

本頁僅適用 WPF 專案

您可以使用「觸發程序」 ** 啟動及停止動畫時間軸,或變更物件的屬性。觸發程序有兩種:

  • 屬性觸發程序    變更一個屬性 (如 IsPressed 屬性) 而觸發另一個屬性發生立即性的變更,或透過動畫時間軸而觸發逐步變更之作業,所依據的機制。屬性觸發程序可以設定在控制項的樣式或範本中。

    如需在通用控制項簡單樣式中設定屬性觸發程序的範例,請參閱WPF 簡單樣式的樣式提示下的主題。

  • 事件觸發程序    事件 (如滑鼠 Click 事件) 觸發動畫時間軸時,所依據的機制。事件觸發程序可以設定於畫板的任何物件上、控制項的樣式或範本中、使用者控制項中或文件根元素中。

    如需在通用控制項簡單樣式中設定事件觸發程序的範例,請參閱WPF 簡單樣式的樣式提示下的主題。

如需詳細資訊,請參閱使用觸發程序定義 WPF 控制項的行為

Note注意:

新增觸發程序時,其範圍等同於該觸發程序所操縱的動畫時間軸。例如,您無法在主文件的編輯範圍內,設定觸發程序來啟動控制項範本中的按鈕動畫時間軸,即使按鈕在該文件中亦然。不過,您可以在控制項範本內設定觸發程序,啟動該控制項範本中的動畫。對於文件新增的使用者控制項中所包含的動畫,此原理同樣適用。

新增屬性觸發程序

  1. 在 [物件與時間軸] 面板中,選取想要修改樣式或範本的控制項。

  2. 在 [物件] 功能表上,執行下列一項動作:

    • 若要編輯控制項的樣式,請指向 [編輯樣式],然後按一下 [編輯複本]。

    • 若要編輯控制項的範本,請指向 [編輯範本],然後按一下 [編輯複本]。

    [建立樣式資源] 對話方塊隨即出現。

    如需有關樣式及範本的詳細資訊,以及兩者的對照表,請參閱選擇及使用互動式控制項的<樣式與範本>一節。

  3. 按一下 [確定] 結束對話方塊,並開啟樣式或範本進行編輯。

    Note注意:

    可以進一步簡化此程序,只著重在設定屬性觸發程序。如需有關樣式與範本之差異的詳細資訊,請參閱選擇及使用互動式控制項的<樣式與範本>一節。如需有關 [建立樣式資源] 對話方塊中選項的詳細資訊,請參閱建立樣式建立或修改範本

  4. 在 [觸發程序] 面板中,可能已經有一些針對控制項狀態 (如 IsEnabled=True ) 設定的屬性觸發程序。如果看不到觸發程序適用的狀態,請按一下 [新增屬性觸發程序] Cc295196.9871399d-14aa-4955-9934-04f33700f273(zh-tw,Expression.40).png

    預設屬性觸發程序 ( MinWidth=0 ) 會新增至清單中,並會加以選取以進行編輯。另外,畫板也會進入觸發程序的錄製模式。

  5. 按一下 [啟用時程] 下的下拉式箭號,修改會啟用觸發程序的屬性與值。例如,如果修改的是 CheckBox 控制項的範本,則可選取 target-element.IsChecked=true ,以在選取核取方塊時啟用此觸發程序。

    您現在可以指定啟用觸發程序時所要執行的動作。

    Note注意:

    如果要將屬性從 target-element 變更為範本中的元素名稱,則需要先在 [物件與時間軸] 面板中選取元素。

  6. 若要在啟用觸發程序時變更屬性,請在 [物件與時間軸] 面板中選取物件,然後變更 [屬性] 面板中的屬性。因為您是處於觸發程序的錄製模式中,所以這才會有作用。

    屬性變更會出現在 [使用時的屬性] 下。

  7. 若要控制啟用觸發程序時的動畫時間軸,請按一下 [啟用時的動作] 旁的 [新增動作] Cc295196.d02551d0-d56a-4ca3-9d5f-58fbc6bda0c3(zh-tw,Expression.40).png

    • 如果沒有可供選擇的現有動畫時間軸,則會開啟 [需要時間軸] 對話方塊,詢問您是否要建立新的時間軸。請按一下 [確定],然後設定主要畫面格並修改物件,以建立動畫。

    • 如果有可供選擇的現有動畫時間軸,則會出現下拉式清單,內含時間軸及建立新時間軸的選項。

    時間軸會出現在 [啟用時的動作] 下,並設為 [Begin]。

  8. 若要結束樣式或範本的編輯範圍,請按一下 [將範圍傳回] Cc295196.55844eb3-ed98-4f20-aa66-a6f5b23eeb2b(zh-tw,Expression.40).png。按 F5 執行應用程式,以測試新的觸發程序。

新增事件觸發程序

  1. 在 [物件與時間軸] 面板中,選取互動時會啟用觸發程序的物件。例如,若要在使用者將指標移至文字方塊上時啟用觸發程序,請選取文字方塊。

  2. 在 [觸發程序] 面板中,按一下 [新增事件觸發程序] Cc295196.671c69bb-32e9-4ef9-9837-29403524abd0(zh-tw,Expression.40).png

    • 隨即會新增預設觸發程序 ( When Window.Loaded is raised )。
  3. 按一下下拉式箭號,修改啟用觸發程序的事件。例如,若要在使用者將指標移至文字方塊上時啟用觸發程序,請將 When Window.Loaded is raised 變更為 When textBox.MouseMove is raised

    Note注意:

    如果要將事件從 Window 變更為範本中的元素名稱,則需要先在 [物件與時間軸] 面板中選取元素。

  4. 若要控制啟用觸發程序時的動畫時間軸,請按一下 When checkBox.MouseMove is raised 旁的 [新增動作] Cc295196.d02551d0-d56a-4ca3-9d5f-58fbc6bda0c3(zh-tw,Expression.40).png

    • 如果沒有可供選擇的現有動畫時間軸,則會開啟 [需要時間軸] 對話方塊,詢問您是否要建立新的時間軸。請按一下 [確定],然後設定主要畫面格並修改物件,以建立動畫。

    • 如果有可供選擇的現有動畫時間軸,則會出現下拉式清單,內含時間軸及建立新時間軸的選項。

    時間軸會出現在 When checkBox.MouseMove is raised 下,並設為 Begin

  5. 按 F5 執行應用程式,以測試新的觸發程序。

移除觸發程序

  1. 在 [觸發程序] 面板中,選取想要移除的觸發程序。

    Note注意:

    如果想要移除的觸發程序是在樣式或控制項範本中,請確定您是處於該樣式或範本的編輯模式。

  2. 按一下 [刪除觸發程序] Cc295196.d31907a6-867b-4e16-b860-f07c9531fbd7(zh-tw,Expression.40).png

  3. 隨即會從清單中移除觸發程序。

Copyright © 2011 by Microsoft Corporation. All rights reserved.