共用方式為


SimpleComboBox 及 SimpleComboBoxItem

本頁僅適用 WPF 專案

下拉式方塊是一種類似下拉式清單的項目控制項。您可以在 Microsoft Expression Blend 的下拉式方塊中放置內容,方法是按兩下下拉式方塊,然後在其中繪製物件 (例如 SimpleComboBoxItem )。此外,也可以用滑鼠右鍵按一下 [物件與時間軸] 面板中的下拉式方塊,然後按一下 [新增 SimpleComboBoxItem] 以便將個別項目新增至集合,或按一下 [將 ItemsSource 繫結至資料] 以便從資料來源產生 ComboBoxItem 物件的集合。若要在畫板上檢視已經展開的下拉式方塊,您可以用滑鼠右鍵按一下 [物件與時間軸] 面板中的下拉式方塊或下拉式方塊項目,然後按一下 [展開 ComboBox]。

新增兩個項目之後 SimpleComboBox 控制項的畫板檢視

Cc295332.25309636-8547-4686-a578-9aa914190f01(zh-tw,Expression.40).png

深入控制項範本

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

  • Grid 面板 :用來在下拉式方塊中容納多個子項目。 Grid 可讓應用程式使用者介面 (UI) 設計師輕鬆地將更多物件新增至範本。

  • 名為 ContentSiteContentPresenter 元素 :位於 Grid 內,用來顯示選取的項目。

  • 名為PART_EditableTextBox 的文字方塊:位於 Grid 內,可讓使用者編輯下拉式方塊內的文字。因為類別會使用 PART_EditableTextBox 這個名稱尋找此文字方塊,因此請勿變更此名稱。根據預設,此文字方塊會呈摺疊狀態,當套用此控制項範本的下拉式方塊上的 IsEditable 設為 True 時,才會顯示。

  • 快顯切換按鈕控制項 :用來建立下拉式方塊的展開部分。快顯控制項可將本身置於與其他控制項的相對位置,並且呈現在所有其他內容之上。這種控制項也支援某些內建的動畫。

  • 快顯控制項內包含的 Grid 控制項 :裡面又包含一個可用來捲動項目清單的 ScrollViewerScrollViewer 中的 StackPanel 會決定每個項目的位置。 StackPanelIsItemsHost 屬性會設為 True ,讓下拉式方塊控制項可將子物件置於 StackPanel 內。若要變更項目的顯示方式,可以用滑鼠右鍵按一下 [物件與時間軸] 面板中的下拉清單格線,然後選取 [變更版面配置類型],並選取不同的面板 (例如 UniformGrid ),以取代此版面配置面板。

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

  • Grid 面板 :用來在下拉式方塊項目中容納多個子項目。同時, Grid 還可讓設計師輕鬆地將更多的物件新增至範本。

  • Border 元素 :此元素包含 BorderThickness 屬性,可以透過範本繫結至套用此範本之按鈕控制項的 BorderThickness 屬性。

  • ContentPresenter 元素 :此元素包含在 Grid 物件內,且會自動繫結至套用此範本之項目控制項的 Content 屬性。

使用屬性觸發程序

控制項範本中的屬性觸發程序,可讓控制項回應屬性變更。您可以按一下 [觸發程序] 面板中的項目,檢視觸發程序啟用時變更的屬性。例如,在下拉式方塊的範本中,當 HasItems 屬性為 False 時, DropDownBorder 物件的最小高度會設為 95 ,此時按一下下拉式方塊會顯示空的下拉式視窗。若最小高度設為 0 ,則會顯示非常小的下拉視窗。在下拉式方塊項目的範本中,當 IsHighlighted 屬性為 True 時, Border 物件的 Background 屬性將會變更,以突顯下拉式方塊中選取的項目。

使用筆刷

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

  • DropDownBorder 物件的 Background 屬性是使用 WindowBackgroundBrush 來設定。

  • DropDownBorder 物件的 BorderBrush 屬性是使用 SolidBorderBrush 來設定。

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

  • 若將使用 SimpleComboBoxItem 範本的項目填入 SimpleComboBox 中,則當選取項目時,項目的 Background 屬性是使用 SelectedBackgroundBrush 來設定,而若 IsEnabledFalse ,則會使用 DisabledForegroundBrush 來設定 Foreground 屬性。

最佳作法與設計方針

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

  • 若要將下拉式方塊設為展開狀態,必須將 ToggleButtonIsChecked 屬性與快顯的 IsOpen 屬性同時繫結至套用此控制項範本之下拉式方塊的 IsDropDownOpen 屬性。若要編輯 ToggleButton 或快顯,必須確定此範本繫結持續存在。

  • ToggleButton 物件使用名稱為 ToggleButtonControlTemplate 的不同範本。若要修改該範本,請用滑鼠右鍵按一下 ToggleButton 物件,指向 [編輯範本],然後按一下 [編輯目前的項目]。

  • 若要編輯 SimpleComboBoxItem 範本,請按一下 [資源] 面板中 SimpleComboBoxItem 樣式旁的 [編輯資源] 按鈕。在樣式的編輯模式下,以滑鼠右鍵按一下 [物件與時間軸] 面板中的 [樣式],指向 [編輯範本],然後按一下 [編輯目前的項目]。若修改 SimpleComboBoxItem 範本,您可能會想要保留或修改 IsHighlighted 觸發程序。

另請參閱

工作

試試看:自訂 SimpleComboBox 中擴充器按鈕的外觀

Copyright © 2011 by Microsoft Corporation. All rights reserved.