WPF - 組合框



組合框是一個選擇控制元件,它結合了一個不可編輯的文字框和一個下拉列表框,允許使用者從列表中選擇一個專案。它要麼顯示當前選擇,要麼如果沒有選擇的專案則為空。組合框類的層次繼承如下:

Hierarchical of Combobox

組合框常用屬性

序號 屬性及描述
1

Background

獲取或設定一個筆刷,該筆刷提供控制元件的背景。(繼承自 Control)

2

BorderThickness

獲取或設定控制元件的邊框粗細。(繼承自 Control)

3

FontFamily

獲取或設定用於在控制元件中顯示文字的字型。(繼承自 Control)

4

FontSize

獲取或設定此控制元件中文字的大小。(繼承自 Control)

5

FontStyle

獲取或設定呈現文字的樣式。(繼承自 Control)

6

FontWeight

獲取或設定指定字型的粗細。(繼承自 Control)

7

Foreground

獲取或設定一個筆刷,該筆刷描述前景色。(繼承自 Control)

8

GroupStyle

獲取一個 GroupStyle 物件集合,這些物件定義每一級組的外觀。(繼承自 ItemsControl)

9

Header

獲取或設定控制元件標題的內容。

10

Height

獲取或設定 FrameworkElement 的建議高度。(繼承自 FrameworkElement)

11

HorizontalAlignment

獲取或設定當 FrameworkElement 在佈局父級(如面板或專案控制元件)中組合時應用的水平對齊特性。(繼承自 FrameworkElement)

12

IsDropDownOpen

獲取或設定一個值,該值指示組合框的下拉部分當前是否開啟。

13

IsEditable

獲取一個值,該值指示使用者是否可以在組合框的文字框部分編輯文字。此屬性始終返回 false。

14

IsEnabled

獲取或設定一個值,該值指示使用者是否可以與控制元件互動。(繼承自 Control)

15

Margin

獲取或設定 FrameworkElement 的外邊距。(繼承自 FrameworkElement)

16

Name

獲取或設定物件的標識名稱。當 XAML 處理器從 XAML 標記建立物件樹時,執行時程式碼可以透過此名稱引用 XAML 宣告的物件。(繼承自 FrameworkElement)

17

Opacity

獲取或設定物件的透明度。(繼承自 UIElement)

18

SelectedIndex

獲取或設定所選專案的索引。(繼承自 Selector)

19

SelectedItem

獲取或設定所選專案。(繼承自 Selector)

20

SelectedValue

獲取或設定所選專案的 value,透過使用 SelectedValuePath 獲取。(繼承自 Selector)

21

Style

獲取或設定在此物件的佈局和呈現期間應用的 Style 例項。(繼承自 FrameworkElement)

22

VerticalAlignment

獲取或設定當 FrameworkElement 在父物件(如面板或專案控制元件)中組合時應用的垂直對齊特性。(繼承自 FrameworkElement)

23

Width

獲取或設定 FrameworkElement 的寬度。(繼承自 FrameworkElement)

24

ItemsSource

獲取或設定用於生成 ItemsControl 內容的物件源。(繼承自 ItemsControl)

組合框常用方法

序號 方法及描述
1

Arrange

定位子物件並確定 UIElement 的大小。實現其子元素自定義佈局的父物件應從其佈局覆蓋實現中呼叫此方法,以形成遞迴佈局更新。(繼承自 UIElement)

2

FindName

檢索具有指定識別符號名稱的物件。(繼承自 FrameworkElement)

3

Focus

嘗試將焦點設定到控制元件。(繼承自 Control)

4

GetValue

從 DependencyObject 返回依賴屬性的當前有效值。(繼承自 DependencyObject)

5

IndexFromContainer

返回具有指定生成的容器的專案的索引。(繼承自 ItemsControl)

6

OnDragEnter

在 DragEnter 事件發生之前呼叫。(繼承自 Control)

7

OnDragLeave

在 DragLeave 事件發生之前呼叫。(繼承自 Control)

8

OnDragOver

在 DragOver 事件發生之前呼叫。(繼承自 Control)

9

OnDrop

在 Drop 事件發生之前呼叫。(繼承自 Control)

10

OnKeyDown

在 KeyDown 事件發生之前呼叫。(繼承自 Control)

11

OnKeyUp

在 KeyUp 事件發生之前呼叫。(繼承自 Control)

12

OnLostFocus

在 LostFocus 事件發生之前呼叫。(繼承自 Control)

13

ReadLocalValue

如果設定了局部值,則返回依賴屬性的區域性值。(繼承自 DependencyObject)

14

SetBinding

使用提供的繫結物件將繫結附加到 FrameworkElement。(繼承自 FrameworkElement)

15

SetValue

設定 DependencyObject 上依賴屬性的區域性值。(繼承自 DependencyObject)

組合框常用事件

序號 事件及描述
1

DragEnter

當輸入系統報告以該元素為目標的基礎拖動事件時發生。(繼承自 UIElement)

2

DragLeave

當輸入系統報告以該元素為原點的基礎拖動事件時發生。(繼承自 UIElement)

3

DragOver

當輸入系統報告以該元素為潛在放置目標的基礎拖動事件時發生。(繼承自 UIElement)

4

DragStarting

當啟動拖動操作時發生。(繼承自 UIElement)

5

Drop

當輸入系統報告以該元素為放置目標的基礎放置事件時發生。(繼承自 UIElement)

6

DropCompleted

當拖放操作結束時發生。(繼承自 UIElement)

7

DropDownClosed

組合框的下拉部分關閉時發生。

8

DropDownOpened

組合框的下拉部分開啟時發生。

9

GotFocus

當 UIElement 獲得焦點時發生。(繼承自 UIElement)

10

IsEnabledChanged

當 IsEnabled 屬性更改時發生。(繼承自 Control)

11

KeyDown

當 UIElement 具有焦點時按下鍵盤鍵時發生。(繼承自 UIElement)

12

KeyUp

當 UIElement 具有焦點時釋放鍵盤鍵時發生。(繼承自 UIElement)

13

LostFocus

當 UIElement 失去焦點時發生。(繼承自 UIElement)

14

SelectionChanged

噹噹前所選專案更改時發生。(繼承自 Selector)

15

SizeChanged

當 FrameworkElement 上的 ActualHeight 或 ActualWidth 屬性的值更改時發生。(繼承自 FrameworkElement)

示例

  • 讓我們建立一個名為 WPFComboBoxControl 的新 WPF 專案。

  • 從工具箱中拖動兩個組合框和兩個文字框,並在屬性視窗中設定以下屬性。

控制元件 屬性
Combobox1 isEditable False
Name comboBox
Width 90
Combobox2 isEditable True
Name comboBox1
Width 90
Textbox1 Name textBox
Width 300
Textbox2 Name textBox1
Width 300
  • 現在切換到 XAML 視窗,您將在其中看到組合框和文字框的 XAML 標記。

  • 新增更多組合框專案和選擇事件屬性,如下面的 XAML 程式碼所示。

<Window x:Class = "WPFComboBoxControl.MainWindow" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   xmlns:local = "clr-namespace:WPFComboBoxControl" 
   mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604">
	
   <Grid>
	
      <ComboBox x:Name = "comboBox" HorizontalAlignment = "Left" 
         Margin = "80,53,0,0" VerticalAlignment = "Top" Width = "120"
         SelectionChanged = "Combo_SelectionChanged"> 
			
         <ComboBoxItem Content = "Item #1" /> 
         <ComboBoxItem Content = "Item #2" /> 
         <ComboBoxItem Content = "Item #3" />
      </ComboBox>
		
      <ComboBox x:Name = "comboBox1" HorizontalAlignment = "Left"
         Margin = "80,153,0,0" VerticalAlignment = "Top" Width = "120"
         IsEditable = "True"
         SelectionChanged = "Combo1_SelectionChanged">
			
         <ComboBoxItem Content = "Item #1" /> 
         <ComboBoxItem Content = "Item #2" /> 
         <ComboBoxItem Content = "Item #3" />
      </ComboBox>
		
      <TextBox x:Name = "textBox" HorizontalAlignment = "Left" 
         Height = "23" Margin = "253,53,0,0" TextWrapping = "Wrap"
         VerticalAlignment = "Top" Width = "200" /> 
			
      <TextBox x:Name = "textBox1" HorizontalAlignment = "Left"
         Height = "23" Margin = "253,152,0,0" TextWrapping = "Wrap"
         VerticalAlignment = "Top" Width = "200" />
			
   </Grid> 
	
</Window>

以下是實現了選擇更改事件的C#程式碼

using System.Windows; 
using System.Windows.Controls;

namespace WPFComboBoxControl { 
   /// <summary> 
      /// Interaction logic for MainWindow.xaml 
   /// </summary> 
	
   public partial class MainWindow : Window { 
	
      public MainWindow() { 
         InitializeComponent(); 
      }
		
      private void Combo_SelectionChanged(object sender, SelectionChangedEventArgs e) { 
         textBox.Text = comboBox.SelectedItem.ToString(); 
      }
		
      private void Combo1_SelectionChanged(object sender, SelectionChangedEventArgs e) { 
         textBox1.Text = comboBox1.SelectedItem.ToString(); 
      } 
		
   }
}

編譯並執行上述程式碼後,它將生成以下視窗。選擇一個專案時,它將顯示在文字框中。

select an item

我們建議您執行上述示例程式碼,並嘗試組合框控制元件的其他屬性和事件。

wpf_controls.htm
廣告
© . All rights reserved.