SimpleButton
此按鈕是回應 Click 事件的「內容控制項」 ** 。在 Microsoft Expression Blend 中,按兩下按鈕並將物件拖曳至按鈕中,即可置入按鈕內容。若要在按鈕中放置多個物件,則必須先新增版面配置面板 (例如 Grid 或 Canvas )。根據預設,按鈕也可以顯示文字;若要編輯文字,可以用滑鼠右鍵按一下按鈕,然後按一下 [編輯文字]。
SimpleButton 控制項的畫板檢視
深入控制項範本
SimpleButton 控制項範本由下列項目組成:
Grid 版面配置面板 用來在按鈕中容納多個子物件。 Grid 可讓您更輕鬆地將更多物件新增至範本。例如,如果根物件是 Border ,且您嘗試新增另一個物件,則另一個物件會取代 ContentPresenter 物件,因為 Border 只能有一個子項。
Border 物件 此物件有 BorderThickness 屬性,可以透過範本繫結至套用此範本之按鈕控制項的 BorderThickness 屬性。
ContentPresenter 用來顯示套用範本之按鈕的 Content 屬性。此物件必須存在,才能顯示按鈕的內容。
使用屬性觸發程序
控制項範本中的屬性觸發程序,可讓控制項回應屬性變更。您可以按一下 [觸發程序] 面板中的項目,檢視觸發程序啟用時變更的屬性。例如在 SimpleButton 範本中,當 IsMouseOver 屬性變成 True 時, Border 物件的背景色彩就會變更為 MouseOverBrush 資源。
使用筆刷
在 SimpleStyles.xaml 資源字典中, SimpleButton 範本會使用下列筆刷資源:
Background 屬性是使用下列項目來設定: NormalBrush (當沒有任何作用中的觸發程序時)、 MouseOverBrush (當 IsMouseOver 為 True 時)、 PressedBrush (當 IsPressed 為 True 時) 和 DisabledBackgroundBrush (當 IsEnabled 為 False 時)。
Border 屬性是使用下列項目來設定: NormalBorderBrush (當沒有任何作用中的觸發程序時)、 DefaultBorderBrush (當 IsKeyboardFocused 為 True 時)、 PressedBorderBrush (當 IsPressed 為 True 時) 和 DisabledBorderBrush (當 IsEnabled 為 False 時)。
當 IsEnabled 為 False 時, Foreground 屬性是使用 DisabledForegroundBrush 來設定。
最佳作法與設計方針
一般而言,如果您希望設計師在控制項上新增更多視覺元素,請使用 Grid 控制項作為範本的根。Expression Blend 會搜尋類似 Grid 控制項的版面配置面板,並將其設為預設啟用,讓新增至畫板的新物件成為版面配置面板的子物件。
根據使用者動作而定 (例如按一下按鈕),屬性觸發程序可用來變更控制項的外觀。屬性觸發程序比事件觸發程序更好用,因為同樣的工作需要兩個事件觸發程序 (例如, MouseDown 和 MouseUp 事件),但屬性觸發程序只需要一個 (例如, IsPressed 狀態)。不過,對於較複雜的控制項,事件觸發程序可用來啟動動畫時間軸。
一般而言,您會想在 IsMouseOver 、 IsPressed 及 IsEnabled ( False ) 狀態上設定筆刷或視覺變化。此外,您也可以使用 IsKeyboardFocused 狀態,這通常是用在控制項周圍顯示虛線。
另請參閱
工作
試試看:使用效果設定按鈕樣式
試試看:將動畫新增至按鈕
試試看:建立滑鼠指向效果按鈕
Copyright © 2011 by Microsoft Corporation. All rights reserved.