SimpleCheckBox

本頁僅適用 WPF 專案

此核取方塊是一種作為切換開關的內容控制項,可以有三種狀態:核取、未核取及不確定。IsChecked 狀態指出是否已選取核取方塊。在 Microsoft Expression Blend 中,按兩下核取方塊並將元素拖曳至核取方塊中,就可以填入核取方塊的內容。若要在核取方塊中放置多個元素,則必須先新增版面配置面板 (例如 [格線] 或 [畫布])。根據預設,核取方塊也可以顯示文字;若要編輯文字,您可以用滑鼠右鍵按一下核取方塊,然後按一下 [編輯文字]。

SimpleCheckBox 控制項的畫板檢視

Cc295106.b070f542-4f36-422b-a930-be4b1311b2ca(zh-tw,Expression.10).png

深入控制項範本

SimpleCheckBox 控制項範本由下列項目所組成:

  • BulletDecorator 容器:用來對齊核取方塊與文字。BulletDecorator 具有兩個子項目:項目符號和內容元素 (例如 ContentPresenter)。BulletDecorator 用於需要對齊文字與另一個元素的其他控制項中 (例如 RadioButton)。

  • Bullet 元素:包含 [格線] 面板,此面板中又包含一個名為 CheckMark 的 Path 元素和一個 Border 元素。Path 用來繪製 "x" 記號。

  • ContentPresenter:用來顯示套用範本之核取方塊的 Content 屬性。此元素必須存在,才能顯示核取方塊的內容。

    物件檢視:SimpleCheckBox 控制項的基本部分 (範本)

    Cc295106.0d0b3635-222f-44ec-81d6-3bf59a1beca3(zh-tw,Expression.10).png

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-tw,Expression.10).gif回到頁首

使用屬性觸發程序

控制項範本中的屬性觸發程序,可讓控制項回應屬性變更。您可以在 [互動] 面板中,按一下 [觸發程序] 底下的項目,檢視觸發程序啟動時變更的屬性。例如,在 SimpleCheckBox 範本中,當 IsChecked 屬性為 False 時,CheckMark 路徑元素的可見度會變更為 Collapsed。在其他觸發程序中,您可以使用筆刷資源來變更 Border 元素的背景。

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-tw,Expression.10).gif回到頁首

使用筆刷

在 SimpleStyles.xaml 資源字典中,SimpleCheckBox 範本會使用下列筆刷資源:

  • 當沒有使用中的觸發程序時,Border 元素的 Background 屬性會設為使用 NormalBrush;當 IsMouseOver 為 True 時會設為 MouseOverBrush;當 IsPressed 為 True 時會設為 PressedBrush;當 IsEnabled 為 False 時則會設為 DisabledBackgroundBrush

  • 當沒有使用中的觸發程序時,BorderBrush 屬性會設為使用 NormalBorderBrush;當 IsPressed 為 True 時會設為 PressedBorderBrush;當 IsEnabled 為 False 時則會設為 DisabledBorderBrush

  • 當 IsEnabled 為 False 時,Foreground 屬性會設為 DisabledForegroundBrush

  • CheckMark 元素的 Stroke 屬性使用 GlyphBrush 來繪製 "x" 記號。

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-tw,Expression.10).gif回到頁首

最佳作法與設計方針

  • 一般而言,如果您希望應用程式介面 (UI) 設計師在控制項上新增更多視覺元素,請使用 Grid 控制項作為範本的根。Expression Blend 會搜尋類似 Grid 控制項的版面配置面板,並且將它設為預設啟用,讓新增至畫板的新元素成為版面配置面板的子元素。

  • 核取方塊的內容是由 ContentPresenter 元素來顯示。ContentPresenter 元素會自動將範本繫結至套用範本之控制項的 Content 屬性。此元素必須存在,核取方塊才能顯示範本化父項目的內容。

  • 在某些情況下,您使用的控制項沒有足夠的屬性可供控制項範本來繫結。例如,CheckBox 控制項未提供屬性來設定 CheckMark 元素的筆刷。在這種情況下,CheckMark 的筆觸會設為更加容易變更的筆刷。您可以根據 CheckBox 控制項來建立自訂類別,然後新增更多可繫結的屬性,或繫結至其中一個現有的屬性。如需自訂類別的範例,請參閱本使用者指南中的試試看:建立自訂的 WPF 控制項

  • 因為我們會隱藏和顯示 CheckMark 路徑元素,所以 Grid 元素為固定大小。如果 Grid 元素不是固定大小,則 ContentPresenter 中的文字會隨著核取方塊選項變更而移動。除了固定「格線」大小和隱藏 CheckMark 路徑以外,另一種作法是在 CheckMark 路徑物件上將 [Stroke] 屬性的 [Opacity] 變更為 0。

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-tw,Expression.10).gif回到頁首

請參閱

概念

試試看:自訂 SimpleCheckBox 中核取記號的外觀