SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――コンボボックス機能

(5) ComboBoxコントロール

14. ドロップダウンリストがオープン/クローズされたことを知る

 ドロップダウンリストがオープンされたかことを知るには DropDownOpened イベント を、クローズされたことを知るには DropDownClosed イベント を使用します。

 下記は、ドロップダウンリストがオープン/クローズされたときに、その状態を表示する例です。

ドロップダウンリストがオープン/クローズされたことを知る例
ドロップダウンリストがオープン/クローズされたことを知る例
VBの例
Private Sub ComboBox1_DropDownOpened(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Handles ComboBox1.DropDownOpened

    TextBlock1.Text = "オープン"
End Sub

Private Sub ComboBox1_DropDownClosed(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    Handles ComboBox1.DropDownClosed

    TextBlock1.Text = "クローズ"
End Sub
C#の例
private void comboBox1_DropDownOpened(object sender, EventArgs e)
{
    textBlock1.Text = "オープン";
}

private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
    textBlock1.Text = "クローズ";
}
ポイント

 ドロップダウンがオープンされたことを知るには DropDownOpend イベントを使用する。

 ドロップダウンがクローズされたことを知るには DropDownClosed イベントを使用する。

15. フォントファミリを表示する

 本 Tips は WPFのみとなります。

 最後に ComboBox コントロールにフォントファミリを表示する例を紹介します。

 ComboBox コントロールにフォントファミリを表示するには ItemSource 属性Fonts.SystemFontFamilies をバインドします。

 ComboBox に表示する項目側(ComboBoxItem 要素)では DataTemplate 要素を使用し、表示する項目の書式(FontFamily 属性)とコンテント(Content 属性)に対して、取得した値をバインディングします。

 また、サンプルの図を見るとわかるように ComboBox コントロールの上部に配置した TextBlock コントロールは、ComboBox で選択されたフォントが反映されるように FontFamily 属性にバインドを行っています。

フォントファミリを表示する例
フォントファミリを表示する例
XAMLの例
<TextBlock FontFamily="{Binding ElementName=ComboBox1,Path=SelectedValue}" 
           Height="32" VerticalAlignment="Top" 
           Text="フォントの例"
           FontSize="20"/>
<!-- フォントファミリを表示するコンボボックス -->
<ComboBox x:Name="ComboBox1" ItemsSource="{Binding Source={x:Static Member=Fonts.SystemFontFamilies}}" Margin="0,38,0,182">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <Label FontSize="16" FontFamily="{Binding .}" Content="{Binding Source}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
ポイント

 ComboBox にフォントファミリを表示するには ItemSource属性に Fonts.SystemFontFamilies をバインドする。

 ComboBoxItem 要素では DataTemplate 要素を使用して、FontFamily 属性と Content 属性にバインドする。

まとめ

 今回は、ComboBoxコントロールについて取り上げました。

 ComboBoxコントロールには多くのプロパティ、イベント、メソッドが備わっており、それ単体でも非常に強力なコントロールだということがおわかりいただけたかと思います。さらに本記事で紹介したように、バインドを使用して項目を追加することも可能ですので、ぜひカスタマイズにも挑戦してみて下さい。

 最後に、ComboBox と ComboBoxItem のMSDNリンクを下記に記しておきます。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5603 2010/12/08 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー