建立使用者控制項
如果想要設計可以新增至畫板的可重複使用元件 (就和系統控制項一樣),則可以在 Microsoft® Expression Blend™ 中建立使用者控制項。使用者控制項可以包含控制項、資源、動畫時間軸及其他使用者控制項,就和標準應用程式一樣。唯一的差異是根元素是 UserControl,而不是 Window。
下列程序顯示如何建立含有一些動畫的使用者控制項,以及如何在另一份文件中具現化該使用者控制項。(如需透過撰寫程式碼並根據現有系統控制項來建立自訂控制項的範例,請參閱建立自訂控制項)。
如需使用者控制項 (包括 XAML 及程式碼範例) 的詳細資訊,請參閱 MSDN 上<Windows Presentation Foundation>一節中的<Control Authoring Overview>。
|
|
您可以在 Expression Blend 隨附的範例中找到更多使用者控制項範例。在 [說明] 功能表中,按一下 [歡迎畫面],並選取 [範例] 索引標籤,然後按一下範例名稱 (如 [色彩樣本])。 |
定義使用者控制項
- 在 Expression Blend 中,執行下列其中一項動作:
- 若要在 .dll 檔案中建立使用者控制項,請按一下 [檔案] 功能表上的 [新增專案],選取 [控制項庫] 專案類型並提供專案名稱,接著選取主文件的程式碼後置檔案語言,然後按一下 [確定]。如果想要在將使用者控制項提供給其他人時隱藏該使用者控制項的實作,請使用此選項。
- 若要在現有專案的 .xaml 檔案中建立使用者控制項,請按一下 [檔案] 功能表上的 [新增項目] (CTRL+N),選取 [UserControl] 範本並提供檔案名稱,然後按一下 [確定]。因為使用者控制項是位在您使用的相同專案中,可以略過更新 .dll 參照的步驟,所以此選項比較容易編輯。
- 決定您想用於根元素的面板類型。根據預設,會使用名稱為 LayoutRoot 的 Grid,此項目可以在於另一份文件中繪製使用者控制項時調整任何動畫的大小。您可以將此項目變更為 Canvas 或其他面板控制項,方法是以滑鼠右鍵按一下 [物件與時間軸] 之下的 [LayoutRoot] 元素,並指向 [變更版面配置類型],然後按一下面板名稱。
- 從 [工具箱] 中,選取使用者控制項中需要的控制項及繪圖工具,並在畫板上加以繪製。請使用 [屬性] 面板中的屬性來修改它們。使用者控制項可以包含標準應用程式可以包含的所有項目。
- 在 [物件與時間軸] 之下,建立想要的任何動畫時間軸。如需範例,請參閱建立簡單動畫。

設定主要畫面格時,請考慮應用程式中所有動畫的時間,以及使用者控制項中動畫的執行時間。例如,假設有個應用程式會先以動畫顯示開頭顯示畫面,再以動畫淡入顯示使用者介面。您可以將每個動畫各置於一個使用者控制項中,但是在第二個動畫的開頭保留足夠的時間,讓開頭顯示畫面動畫完成。 
如果要讓動畫可以重複執行多次,請在 0 秒標記上設定主要畫面格。例如,如果建立的動畫時間軸是將物件從左邊移動至右邊,而且是透過按兩下滑鼠的動作所觸發,但是未在 0 秒標記上設定主要畫面格,則因為動畫是「遞移式」動畫,所以之後按兩下滑鼠也無法多次執行。如需遞移式動畫的詳細資訊,請參閱使用多個及重疊動畫時間軸。 - 在 [觸發程序] 之下,設定任何讓應用程式回應使用者互動的屬性或事件觸發程序。如需範例,請參閱新增或移除觸發程序。

決定想要在使用者控制項中設定的觸發程序時,請考慮想要用於使用者控制項的所有屬性及觸發程序。例如,假設有個應用程式含有一個按鈕,以及一個包含在使用者控制項中的動畫。在 Expression Blend 中,除非按鈕也是使用者控制項的一部分,否則無法在按一下該按鈕時會啟動動畫時間軸的使用者控制項中新增觸發程序。此外,只有在兩個屬性都是位在相同使用者控制項中,才能在這兩個屬性值之間進行資料繫結。您可以利用程式碼後置檔案以程式設計方式來解決此問題,而在將使用者控制項新增至文件之後,建立具有該使用者控制項之觸發程序及動畫時間軸的範本,也可以解決此問題。如需利用程式碼後置檔案的使用者控制項的範例,請參閱 MSDN 上<Windows Presentation Foundation>一節中的<控制項製作概觀>(英文)。如需透過 Expression Blend 編輯程式碼後置檔案的詳細資訊,請參閱編輯程式碼後置檔案。 - 當您建立好使用者控制項時,請一定要變更文件的根元素大小,使其符合您所需的大小。在 [物件與時間軸] 之下,選取文件根目錄,然後使用 [選取]
工具,利用畫板上的藍色提示來調整文件視窗大小。 - 如果使用者控制項是取決於使用者控制項中空白區域的按一下滑鼠動作或互動,則需要將根元素背景設定為實心筆刷,這樣當使用者控制項在新增至另一份文件時就會取用畫板上的固定項目。在 [屬性] 面板的 [筆刷] 類別中,將根元素的 [Background] 屬性變更為 [單色筆刷]
。如果想要隱藏背景,請將 [Alpha] 子屬性變更為 0。 - 如果使用者控制項是取決於特定高度或寬度,請在下列位置設定 [MinHeight] 及 [MinWidth] 屬性:[進階]
區段 (在 [屬性] 面板的 [版面配置] 類別中)。 - 如果想要在文件中繪製使用者控制項時調整大小,請確定使用者控制項中所有物件的 [Width] 及 [Height] 屬性都重設為 [Auto]。
- 按一下 [檔案] 功能表上的 [全部儲存],以儲存檔案及專案。
- 如果專案是控制項庫,請按一下 [專案] 功能表上的 [建置專案] (CTRL+SHIFT+B),以建置專案來建立 .dll 檔案。
.dll 檔案會建置並儲存在與專案相同位置的 \bin\Debug 資料夾中。
在另一份文件中具現化使用者控制項
- 如果已建立控制項庫,請在想要使用使用者控制項的專案中新增 .dll 參照。在 [專案] 功能表上,按一下 [新增參照],然後在 [新增參照] 視窗中瀏覽至使用者控制項的 .dll 檔案,再按一下 [開啟]。
- 建置目前專案 (CTRL+SHIFT+B),這樣才可以在 [資產庫] 中選取該使用者控制項。
- 從 [資產庫]
的 [自訂控制項] 索引標籤中,選取使用者控制項。
[資產庫] 按鈕上方會顯示已經選取之使用者控制項的圖示。 - 使用滑鼠,在畫板上繪製使用者控制項。
- 測試專案 (F5) 以查看使用中的使用者控制項。
將使用者控制項新增至另一份文件之後進行編輯
如果建立的是使用者控制項文件,而不是控制項庫 (.dll),則可以使用內容功能表進入控制項的編輯模式。
- 以滑鼠右鍵按一下畫板上或 [物件與時間軸] 之下的使用者控制項,然後按一下 [編輯控制項]。
Expression Blend 會開啟使用者控制項文件供您進行編輯。 - 進行變更之後,請儲存檔案,然後切換回主文件。
如果已在控制項庫專案中建立使用者控制項,則需要編輯原始控制項庫專案,然後重新建置 .dll。


