控制何時執行腳本
您可以透過下列方式控制何時在 Microsoft Expression Blend 應用程式中執行腳本:
將行為拖曳至用來控制腳本的物件上。您可以使用 [ControlStoryboardAction] 行為,而如果您正在使用狀態來建立動畫,則可使用 [GoToStateAction] 行為。如需詳細資訊,請參閱將行為新增至物件。
建立觸發程序,以在發生事件時 (如按一下按鈕) 執行腳本;或如果您的腳本位於控制項範本中,則是在屬性變更時執行腳本。
注意事項: Microsoft Silverlight 專案中無法使用觸發程序。
在程式碼後置檔案中建立事件處理常式方法,以呼叫腳本的 Begin 方法。
您也可以使用這些方法來控制腳本何時停止、暫停、繼續、移除本身,或跳至腳本結尾。
這些方法會隨您作業的範圍而略有不同。
注意事項: |
---|
下列程序參照包含視覺動畫的腳本。但是,這些程序也可以套用至音訊或視訊腳本。如需詳細資訊,請參閱將音訊或視訊檔案插入使用中的文件。 |
文件主要範圍中的腳本
如果腳本將是您文件的主要功能,請在文件的主要範圍中建立腳本,然後再透過使用者與也位於文件主要範圍中的控制項互動,以觸發腳本。
使用事件處理常式方法控制文件主要範圍中的腳本
關閉任何開啟的腳本。如需詳細資訊,請參閱開啟或關閉腳本。
如果您正在操作 WPF 專案,請刪除在建立腳本時,針對 Window.Loaded 事件建立的預設觸發程序。如需詳細資訊,請參閱新增或移除觸發程序。
在 [物件與時間軸] 面板中,選取互動時會執行腳本的物件。例如,若要在使用者的指標移至文字區塊上時執行腳本,請選取文字區塊。
在 [屬性] 面板中,按一下 [事件] 。會以字母順序顯示所選取元素的所有可用事件清單。
秘訣: 若要查看事件的簡短描述,請將指標移到事件名稱的上方。工具提示會顯示事件描述。
尋找想要新增程式設計邏輯的事件 (例如 [MouseEnter] 事件)。
您可以使用兩種方式產生空的事件處理常式方法:
按兩下事件名稱旁邊的文字區塊。Expression Blend 會產生事件處理常式方法的預設名稱,並將該名稱輸入至文字區塊中,並會產生空白方法的程式碼。
在事件名稱旁的文字區塊中鍵入名稱,然後按下 ENTER 鍵,或按一下其他任意位置,將焦點移離文字區塊。事件方法名稱的開頭必須是英文字母。如果程式碼後置檔案中還沒有此方法名稱,則 Expression Blend 會為空白方法產生程式碼,並使用您所鍵入的名稱。
Expression Blend 會開啟您的程式碼後置檔案,然後再貼上空事件處理常式方法。
private void TextBlock_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e) { }
在開啟程式碼後置檔案並貼入事件處理常式方法後,就可以開始將下列粗體程式碼新增至事件處理常式方法中。
private void TextBlock_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e) { Storyboard myStoryboard; myStoryboard = (Storyboard)this.Resources["Storyboard1"]; myStoryboard.Begin(this); }
Private Sub textBlock_MouseEnter(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs) Dim myStoryboard As New Storyboard myStoryboard = CType(Me.Resources("Storyboard1"), Storyboard) myStoryboard.Begin(Me) End Sub
儲存所有檔案,然後按 F5 鍵以建置並測試您的應用程式。例如,在執行的應用程式中,將滑鼠移到文字區塊上方,查看動畫是否會開始。
注意事項: 如果當您再次將滑鼠移至文字區塊上方時,您的動畫無法返回起始點,這可能是因為您未將主要畫面格設定在 0 秒標記上。
使用事件觸發程序控制文件主要範圍中的腳本 (僅限 WPF)
在 Expression Blend 中,當您在 Windows Presentation Foundation (WPF) 專案中之主文件的範圍內建立腳本時會自動建立新的觸發程序,以在載入應用程式視窗時執行您的腳本。您可以在 [觸發程序] 面板檢視此觸發程序。
建立腳本時由 Expression Blend 設定的預設觸發程序
若此觸發程序維持不變,即會在應用程式啟動時執行腳本。或者,您可以藉由使用下列程序修改此行為。
關閉任何開啟的腳本。如需詳細資訊,請參閱開啟或關閉腳本。
如果當您建立腳本時,為 Window.Loaded 事件建立了預設觸發程序,且不想要在應用程式啟動時執行腳本,請在 [觸發程序] 面板中選取 Window.Loaded。否則,請按一下 [新增事件觸發程序] ,建立新的預設事件觸發程序。
在 [物件與時間軸] 面板中,選取互動時會執行腳本的物件。例如,若要在使用者的指標移至文字區塊上時執行腳本,請選取文字區塊。
使用 [觸發程序] 面板中的下拉式功能表,變更觸發動畫的事件 (Window.Loaded)。例如,將 [當 Window.Loaded 引發時] 變更為 [當 textblock.MouseEnter 引發時]。
定義觸發事件時將執行的動作。若未列出任何動作,請按一下 [新增動作] 。請確定將動作設為腳本的名稱 (例如 [Storyboard1]),且呼叫的方法為 [Begin]。或是選取對腳本有效的任一方法。如需詳細資訊,請參閱新增或移除觸發程序。
控制項範本及樣式中的腳本
Microsoft Expression Blend 有時會為您建立腳本,例如當您修改控制項範本,而將動作新增至屬性觸發程序或事件觸發程序時。如需有關如何處理樣式及範本的詳細資訊,請參閱設定支援範本之控制項的樣式。
注意事項: |
---|
下列程序適用於 WPF 專案,不過您可以在 Silverlight 專案中使用狀態來控制腳本。如需詳細資訊,請參閱根據使用者互動變更狀態與新增狀態變更後播放的動畫。 |
控制範本範圍中的腳本
使用下列其中一種方法開啟樣式或範本以進行修改:
注意事項: 若想瞭解是要使用樣式或範本,請參閱設定支援範本之控制項的樣式。
注意事項: 某些物件不支援範本,例如路徑物件。[Button] 或 [RadioButton] 等控制項支援範本。
若要建立新範本,請選取畫板上或 [物件與時間軸] 面板中的物件,在 [物件] 功能表上按一下 [編輯範本],然後選取 [編輯複本]。[建立樣式資源] 對話方塊會隨即顯示。選取想要定義資源的位置,然後按一下 [確定]。如需詳細資訊,請參閱建立樣式。
若要建立新樣式,請選取畫板上或 [物件與時間軸] 面板中的物件,在 [物件] 功能表上按一下 [編輯樣式],然後選取 [編輯複本]。[建立樣式資源] 對話方塊會隨即顯示。選取想要定義資源的位置,然後按一下 [確定]。如需詳細資訊,請參閱建立樣式。
若要開啟現有的範本,請按一下 [資源] 面板中樣式旁的 [編輯資源] ,接著在 [物件與時間軸] 面板中以滑鼠右鍵按一下 [Style] 元素,按一下 [編輯範本],然後選取 [編輯目前的項目]。或是選取已套用自訂樣式的控制項,在 [物件] 功能表上按一下 [編輯範本],然後選取 [編輯目前的項目]。
若要開啟現有的樣式,請按一下 [資源] 面板中樣式旁的 [編輯資源] 。或是選取已套用自訂樣式的控制項,在 [物件] 功能表上按一下 [編輯樣式],然後選取 [編輯目前的項目]。
若要修改 Expression Blend 隨附的其中一個簡單樣式,請在 [工具] 面板中按一下 [資產] ,依序按一下 [樣式] 類別及 [簡單樣式] 資源字典,選取預先設定樣式的控制項,在畫板上繪製控制項使 [Simple Styles.xaml] 資源字典可以在 [資源] 面板中使用,然後使用上述其中一個選項開啟簡單樣式或範本。修改目前專案中的 [Simple Styles.xaml] 資源字典並不會影響其他專案中的 [Simple Styles.xaml] 資源字典,除非您將 [Simple Styles.xaml] 檔案從目前的專案複製到其他專案。
當您位於樣式或範本的編輯範圍時,新的 Expression Blend 階層連結列會出現在畫板的頂端。
已選取範本編輯模式的階層連結列
按一下階層連結列上的按鈕,可讓您在所選物件的範本編輯模式、樣式編輯模式及物件編輯範圍之間快速切換。任何套用自訂樣式或範本的所選物件,都會出現階層連結列。
在 [物件與時間軸] 面板中,按一下 [新增] 。
[建立腳本資源] 對話方塊會隨即顯示。
輸入名稱並按一下 [確定]。[建立腳本資源] 對話方塊會隨即關閉,且 Expression Blend 會進入時間軸錄製模式。
建立特定動畫,只影響正在編輯之樣式或範本中的物件。
注意事項: 您無法以動畫顯示正在修改的範本或樣式以外之物件。但是,您可用動畫顯示樣式或範本中的現有物件。此外,修改範本時,您可以將 [範本] 節點下的項目加以分組,置入版面配置面板 (如 [格線]),然後將更多物件新增至格線,再於其中以動畫顯示。
執行下列一項動作,觸發新腳本:
若要將腳本新增至現有的屬性觸發程序,請在 [觸發程序] 面板中選取觸發程序,然後在 [觸發程序] 面板的下半部,根據您要在啟動觸發程序時執行腳本,還是在停用時執行,按一下 [啟用時的動作] 或 [停用時的動作] 旁之 [新增動作] 。新的腳本會自動新增為啟用觸發程序時會發生的動作。
若要將腳本新增至新的屬性觸發程序,請按一下 [新增屬性觸發程序] ,然後在 [觸發程序] 面板的下半部,將觸發程序從預設的 [target-element.IsCancel = False] 變更為所需的屬性與值 (例如 [target-element.IsPressed = True]),然後按一下 [新增動作] 。新的腳本會自動新增為引發事件時會發生的動作。
若要將腳本新增至新的事件觸發程序,請按一下 [新增事件觸發程序] ,然後在 [觸發程序] 面板的下半部,將觸發程序從預設的 [當 target-element.Loaded 引發時] 變更為所需的事件 (例如 [當 target-element.Click 引發時]),然後按一下 [新增動作] 。新的腳本會自動新增為引發事件時會發生的動作。
重要: 一律選取 [預設] 觸發程序來關閉觸發程序錄製模式,再對範本進行一般變更。否則,可能會不小心變更現有的觸發程序。
警告: 在修改樣式及範本時,有可能會破壞套用樣式或範本之系統控制項的功能。如需注意事項清單,請參閱設定支援範本之控制項的樣式的<最佳作法>一節。
儲存所有檔案,然後按 F5 鍵以建置並測試您的應用程式。
如需修改範本更特定的範例,請參閱試試看:將動畫新增至按鈕。
使用者控制項中的腳本
透過將腳本置入使用者控制項中,您可以將物件和以動畫顯示物件的腳本封裝成一個 XAML 文件和程式碼後置檔案。然後,您可以多次在其他文件中初始化使用者控制項。
控制使用者控制項中的腳本
執行下列一項動作,以建立並開啟使用者控制項以進行編輯:
在 [檔案] 功能表上選取 [新增項目]。在 [新增項目] 對話方塊中,選取 [UserControl] 並設定 [名稱],然後按一下 [確定]。
建立一個動畫腳本,並以動畫顯示使用者控制項中的部分物件。
您現在可以藉由使用事件觸發程序或事件處理常式方法,使用<文件主要範圍中的腳本>所述的任何一項工作來控制動畫。
注意事項: 如果您先建立物件的事件觸發程序,然後再使用 [變成 UserControl] 命令將物件轉換成使用者控制項,則必須在使用者控制項的範圍中重新建立事件觸發程序。這是因為使用者控制項範圍中可使用的事件,與主文件範圍中可使用的事件不同。例如,您可以使用 [Storyboard1.Begin] 等動作設定 [當 UserControl.MouseDown 引發時] 等事件。當您使用 [變成 UserControl] 命令時,資源和動畫會重整為新的控制項,因此您無須重新建立。
注意事項: 如果您先建立物件的事件處理常式方法,然後再使用 [變成 UserControl] 命令將物件轉換成使用者控制項,則事件處理常式方法程式檔不會從主文件的程式碼後置檔案中移至使用者控制項的程式碼後置檔案中。這是因為可能有其他使用相同事件處理常式方法的物件。您可以複製事件處理常式方法,並貼到使用者控制項的程式碼後置檔案中。