Wpf-combobox

提供:Dev Guides
移動先:案内検索

WPF-コンボボックス

コンボボックスは、編集できないテキストボックスと、ユーザーがリストからアイテムを選択できるドロップダウンリストボックスを組み合わせた選択コントロールです。 現在の選択を表示するか、選択されたアイテムがない場合は空になります。 ComboBoxクラスの階層的な継承は次のとおりです-

コンボボックスの階層

ComboBoxの一般的に使用されるプロパティ

以下は、ComboBoxの最も一般的に使用されるプロパティです。

Sr.No. Property & Description
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に適用される水平方向の配置特性を取得または設定します。 (FrameworkElementから継承されます)

12

IsDropDownOpen

ComboBoxのドロップダウン部分が現在開いているかどうかを示す値を取得または設定します。

13

IsEditable

ユーザーがComboBoxのテキストボックス部分のテキストを編集できるかどうかを示す値を取得します。 このプロパティは常にfalseを返します。

14

IsEnabled

ユーザーがコントロールを操作できるかどうかを示す値を取得または設定します。 (Controlから継承)

15

Margin

FrameworkElementの外側のマージンを取得または設定します。 (FrameworkElementから継承されます)

16

Name

オブジェクトの識別名を取得または設定します。 XAMLプロセッサがXAMLマークアップからオブジェクトツリーを作成するとき、ランタイムコードはこの名前でXAMLで宣言されたオブジェクトを参照できます。 (FrameworkElementから継承されます)

17

Opacity

オブジェクトの不透明度を取得または設定します。 (UIElementから継承)

18

SelectedIndex

選択された項目のインデックスを取得または設定します。 (セレクターから継承)

19

SelectedItem

選択した項目を取得または設定します。 (セレクターから継承)

20

SelectedValue

SelectedValuePathを使用して取得した、選択された項目の値を取得または設定します。 (セレクターから継承)

21

Style

レイアウトおよびレンダリング中にこのオブジェクトに適用されるインスタンススタイルを取得または設定します。 (FrameworkElementから継承されます)

22

VerticalAlignment

FrameworkElementがパネルや項目コントロールなどの親オブジェクトで構成されるときにFrameworkElementに適用される垂直方向の配置特性を取得または設定します。 (FrameworkElementから継承されます)

23

Width

FrameworkElementの幅を取得または設定します。 (FrameworkElementから継承されます)

24

ItemsSource

ItemsControlのコンテンツの生成に使用されるオブジェクトソースを取得または設定します。 (ItemsControlから継承)

ComboBoxの一般的に使用されるメソッド

以下は、ComboBoxの最も一般的に使用されるメソッドです。

Sr.No. Method & Description
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から継承)

ComboBoxの一般的に使用されるイベント

以下は、ComboBoxの最も一般的に使用されるイベントです。

Sr.No. Event & Description
1

DragEnter

入力システムが、この要素をターゲットとして基になるドラッグイベントを報告したときに発生します。 (UIElementから継承)

2

DragLeave

入力システムが、この要素を起点として基本的なドラッグイベントを報告したときに発生します。 (UIElementから継承)

3

DragOver

入力システムが潜在的なドロップターゲットとしてこの要素を持つ基本的なドラッグイベントを報告するときに発生します。 (UIElementから継承)

4

DragStarting

ドラッグ操作が開始されたときに発生します。 (UIElementから継承)

5

Drop

入力システムが、この要素をドロップターゲットとして基になるドロップイベントを報告したときに発生します。 (UIElementから継承)

6

DropCompleted

ドラッグアンドドロップ操作が終了したときに発生します。 (UIElementから継承)

7

DropDownClosed

ComboBoxのドロップダウン部分が閉じたときに発生します。

8

DropDownOpened

ComboBoxのドロップダウン部分が開いたときに発生します。

9

GotFocus

UIElementがフォーカスを受け取ったときに発生します。 (UIElementから継承)

10

IsEnabledChanged

IsEnabledプロパティが変更されたときに発生します。 (Controlから継承)

11

KeyDown

UIElementにフォーカスがあるときにキーボードキーが押されると発生します。 (UIElementから継承)

12

KeyUp

UIElementにフォーカスがあるときにキーボードキーが離されると発生します。 (UIElementから継承)

13

LostFocus

UIElementがフォーカスを失ったときに発生します。 (UIElementから継承)

14

SelectionChanged

現在選択されている項目が変更されたときに発生します。 (セレクターから継承)

15

SizeChanged

ActualHeightまたはActualWidthプロパティがFrameworkElementの値を変更したときに発生します。 (FrameworkElementから継承されます)

  • WPFComboBoxControlという名前の新しいWPFプロジェクトを作成しましょう。
  • ツールボックスから2つのコンボボックスと2つのテキストボックスをドラッグし、プロパティウィンドウで次のプロパティを設定します。

コントロール

物件

コンボボックス1

isEditable

Name

コンボボックス

90

コンボボックス2

isEditable

True

Name

comboBox1

90

Textbox1

Name

テキストボックス

300

Textbox2

Name

textBox1

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();
      }

   }
}

上記のコードをコンパイルして実行すると、次のウィンドウが生成されます。 アイテムを選択すると、テキストボックスに表示されます。

アイテムを選択

上記のサンプルコードを実行し、コンボボックスコントロールの他のプロパティとイベントを試すことをお勧めします。