SHOEISHA iD

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

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

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

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

(4) ListBoxコントロール


  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード WPF_VB.zip (322.6 KB)
ダウンロード WPF_CS.zip (212.4 KB)
ダウンロード Silverlight_VB.zip (2.4 MB)
ダウンロード Silverlight_CS.zip (2.3 MB)

3. 項目を水平方向に並べる

 ListBoxコントロールに表示する1つ1つの項目はItemsPanelと呼ばれるレイアウトを制御するパネルで管理されています。

 パネルの配置位置を変更したい場合は、ListBoxコントロールのControlTemplateを作成します。このとき、ItemsPanelTemplate要素内にStackPanelコントロールを置き、コントロールの配置方向を水平方向(Orientation属性をHorizontal)に設定します。

 下記は、ControlTemplateとItemsPresenterを使用して、項目を水平方向に並べる例です。

項目を水平方向に並べる例
項目を水平方向に並べる例
XAMLの例
<ListBox Height="60" Margin="12,12,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Width="138">
    <ListBox.Template>
        <ControlTemplate TargetType="{x:Type ListBox}"><!-- ←WPFとSilverlightではここの記述が異なるので注意-->
        <!-- <ControlTemplate TargetType="ListBox"> --><!-- ←Silverlightはこっち-->
            <Border BorderBrush="#808080" BorderThickness="1" Margin="0">
                <ItemsPresenter Margin="5"/>
            </Border>
        </ControlTemplate>
    </ListBox.Template>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Horizontal"/><!-- ←水平方向に設定-->
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    
    <ListBoxItem Height="50">
        <StackPanel>
            <Image Height="20" Name="Japan" Source="./Images/japan.gif" Width="32" />
            <TextBlock>日本</TextBlock>
        </StackPanel>
    </ListBoxItem>
    <ListBoxItem Height="50">
        <StackPanel>
            <Image Height="20" Name="USA" Source="./Images/usa.gif" Width="32" />
            <TextBlock>アメリカ</TextBlock>
        </StackPanel>
    </ListBoxItem>
    <ListBoxItem Height="50">
        <StackPanel>
            <Image Height="20" Name="Canada" Source="./Images/canada.gif" Width="32" />
            <TextBlock>カナダ</TextBlock>
        </StackPanel>
    </ListBoxItem>
</ListBox>
ポイント

 項目を水平方向に配置するには、ControlTemplateを作成して対応する。このときItemsPanelTemplateにStackPanelを配置しコントロールの配置方向を水平(Horizontal)に設定する。

4. 表示項目数を取得する

 表示項目数を取得するにはItemsプロパティCountプロパティを使用します。

 下記はCountプロパティを使用して、現在表示されている項目数を取得する例です。

表示項目数を取得する例
表示項目数を取得する例
VBの例
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
    '項目数を取得
    Dim itemCnt As Integer = ListBox1.Items.Count

    MessageBox.Show("表示項目数は " & itemCnt.ToString() & " です")
End Sub
C#の例
private void Button1_Click(object sender, RoutedEventArgs e)
{
    // 項目数を取得
    int itemCnt = listBox1.Items.Count;

    MessageBox.Show("表示項目数は " + itemCnt.ToString() + " です");
}

ポイント

 表示項目数を取得するには、Countプロパティを使用する。

次のページ
5. 選択モードを設定する

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5557 2010/11/25 22:09

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング