共用方式為


SimpleCheckBox

本頁僅適用 WPF 專案

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

SimpleCheckBox 控制項的畫板檢視

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

深入控制項範本

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

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

  • Bullet 元素 :包含 Grid 面板,此面板中又包含一個名為 CheckMarkPath 元素和一個 Border 元素。 Path 可用來繪製 "x" 記號。

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

使用屬性觸發程序

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

使用筆刷

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

  • Border 元素的 Background 屬性是使用下列項目來設定: NormalBrush (當沒有任何作用中的觸發程序時)、 MouseOverBrush (當 IsMouseOverTrue 時)、 PressedBrush (當 IsPressedTrue 時) 和 DisabledBackgroundBrush (當 IsEnabledFalse 時)。

  • BorderBrush 屬性是使用下列項目來設定: NormalBorderBrush (當沒有任何作用中的觸發程序時)、 PressedBorderBrush (當 IsPressedTrue 時) 和 DisabledBorderBrush (當 IsEnabledFalse 時)。

  • IsEnabledFalse 時, Foreground 屬性是使用 DisabledForegroundBrush 來設定。

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

最佳作法與設計方針

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

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

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

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

另請參閱

工作

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

Copyright © 2011 by Microsoft Corporation. All rights reserved.