CodeZine(コードジン)

特集ページ一覧

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

(5) ComboBoxコントロール

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2010/12/08 14:00
目次

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リンクを下記に記しておきます。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

もっと読む

著者プロフィール

  • HIRO(ヒロ)

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5