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