SHOEISHA iD

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

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

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

Silverlight/WPFで使える逆引きTips集
――ステータスバー機能

(12) StatuslBarコントロール

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

ダウンロード StatusBar_WPF_VB.zip (142.2 KB)
ダウンロード StatusBar_WPF_CS.zip (50.8 KB)

02.セパレーターを挿入する

 ステータスバーに配置された項目と項目の間にセパレーターを挿入するにはSeparatorクラスを使用します。

 下記は、セパレータを挿入する例です。

セパレーターを挿入する例
セパレーターを挿入する例
XAMLの例
<DockPanel Name="DockPanel1">
    <StatusBar DockPanel.Dock="Bottom">
        <StatusBarItem>Item1</StatusBarItem>
        <Separator />
        <StatusBarItem>Item2</StatusBarItem>
        <Separator />
        <StatusBarItem>Item3</StatusBarItem>
    </StatusBar>
    <TextBox></TextBox>
</DockPanel>
VBの例
'XAMLではなくコードでセパレーターを挿入する場合は下記のようにします

Dim statusBar1 As New Primitives.StatusBar()
Dim item1 As New Primitives.StatusBarItem()
Dim item2 As New Primitives.StatusBarItem()
Dim item3 As New Primitives.StatusBarItem()
Dim separator1 As New Separator()           '★★★セパレータ★★★
Dim separator2 As New Separator()           '★★★セパレータ★★★

'1つ目のステータスバー項目を作成
item1.Content = "item1"
'ステータスバーに項目を追加
statusBar1.Items.Add(item1)

'★★★セパレーターの挿入★★★
statusBar1.Items.Add(separator1)

'2つ目のステータスバー項目を作成
item2.Content = "item2"
'ステータスバーに項目を追加
statusBar1.Items.Add(item2)

'★★★セパレーターの挿入★★★
statusBar1.Items.Add(separator2)

'3つ目のステータスバー項目を作成
item3.Content = "item3  "
'ステータスバーに項目を追加
statusBar1.Items.Add(item3)

'DockPanelにステータスバーを設置
DockPanel.SetDock(statusBar1, Dock.Bottom)
Me.DockPanel1.Children.Add(statusBar1)

'DockPanelにテキストボックスを設置
Dim txtInput As New TextBox
DockPanel.SetDock(txtInput, Dock.Bottom)
Me.DockPanel1.Children.Add(txtInput)
C#の例
// XAMLではなくコードでセパレーターを挿入する場合は下記のようにします

System.Windows.Controls.Primitives.StatusBar statusBar1 =
    new System.Windows.Controls.Primitives.StatusBar();
System.Windows.Controls.Primitives.StatusBarItem item1 =
    new System.Windows.Controls.Primitives.StatusBarItem();
System.Windows.Controls.Primitives.StatusBarItem item2 =
    new System.Windows.Controls.Primitives.StatusBarItem();
System.Windows.Controls.Primitives.StatusBarItem item3 =
    new System.Windows.Controls.Primitives.StatusBarItem();
Separator separator1 = new Separator();     //★★★セパレータ★★★
Separator separator2 = new Separator();     //★★★セパレータ★★★

// 1つ目のステータスバー項目を作成
item1.Content = "item1";
// ステータスバーに項目を追加
statusBar1.Items.Add(item1);

// ★★★セパレーターの挿入★★★
statusBar1.Items.Add(separator1);

// 2つ目のステータスバー項目を作成
item2.Content = "item2";
// ステータスバーに項目を追加
statusBar1.Items.Add(item2);

// ★★★セパレーターの挿入★★★
statusBar1.Items.Add(separator2);

// 3つ目のステータスバー項目を作成
item3.Content = "item3";
// ステータスバーに項目を追加
statusBar1.Items.Add(item3);

// DockPanelにステータスバーを設置
DockPanel.SetDock(statusBar1, Dock.Bottom);
this.DockPanel1.Children.Add(statusBar1);

// DockPanelにテキストボックスを設置
TextBox txtInput = new TextBox();
DockPanel.SetDock(txtInput, Dock.Bottom);
this.DockPanel1.Children.Add(txtInput);
ポイント

 セパレーターを挿入するにはSeparatorクラスを使用する。

 

03.ステータスバー項目の配置位置を設定する その1

 ステータースバーの項目は、内部的にDockPanelに配置されています。

 このため、添付プロパティDockPanel.Dockを使用して項目の配置位置を設定することができます。項目を左端に寄せたい場合にはLeftを、右端に寄せたい場合にはRightを指定します。

 このように項目の配置位置を設定すると、最後に追加した項目は空いている場所へ配置されるとともにWindowのサイズに合わせて伸縮する項目となります。

 下記は、ステータスバーに追加する項目に配置位置を設定する例です。

 「Item1」という項目を左端に、「Item3」という項目を右端に配置しています。最後の項目として追加した「Item2」は伸縮する項目となります。

ステータスバー項目の配置位置を設定する例
ステータスバー項目の配置位置を設定する例
XAMLの例
<DockPanel Name="DockPanel1">
    <StatusBar DockPanel.Dock="Bottom">
        <!-- 左側に配置 -->
        <StatusBarItem DockPanel.Dock="Left">Item1</StatusBarItem>
        <Separator DockPanel.Dock="Left"/>
        <!-- 右側に配置 -->
        <StatusBarItem DockPanel.Dock="Right">Item3</StatusBarItem>
        <Separator DockPanel.Dock="Right"/>
        <!-- 中央に配置 最後に追加した項目は伸縮する-->
        <StatusBarItem>Item2</StatusBarItem>
    </StatusBar>
    <TextBox></TextBox>
</DockPanel>
VBの例
'XAMLではなくコードで配置位置を設定する場合は下記のようにします

Dim statusBar1 As New Primitives.StatusBar()
Dim item1 As New Primitives.StatusBarItem()
Dim item2 As New Primitives.StatusBarItem()
Dim item3 As New Primitives.StatusBarItem()
Dim separator1 As New Separator()
Dim separator2 As New Separator()

'左端のステータスバー項目を作成
item1.Content = "item1"
'ステータスバーに項目を追加
statusBar1.Items.Add(item1)
DockPanel.SetDock(item1, Dock.Left)

'セパレーターの挿入
statusBar1.Items.Add(separator1)
DockPanel.SetDock(separator1, Dock.Left)

'右端のステータスバー項目を作成
item3.Content = "item3"
'ステータスバーに項目を追加
statusBar1.Items.Add(item3)
DockPanel.SetDock(item3, Dock.Right)

'セパレーターの挿入
statusBar1.Items.Add(separator2)
DockPanel.SetDock(separator2, Dock.Right)

'中央のステータスバー項目を作成
'最後の項目なので伸縮する項目となる
item2.Content = "item2"
'ステータスバーに項目を追加
statusBar1.Items.Add(item2)

'DockPanelにステータスバーを設置
DockPanel.SetDock(statusBar1, Dock.Bottom)
Me.DockPanel1.Children.Add(statusBar1)

'DockPanelにテキストボックスを設置
Dim txtInput As New TextBox
DockPanel.SetDock(txtInput, Dock.Bottom)
Me.DockPanel1.Children.Add(txtInput)
C#の例
// XAMLではなくコードで配置位置を設定する場合は下記のようにします

System.Windows.Controls.Primitives.StatusBar statusBar1 =
    new System.Windows.Controls.Primitives.StatusBar();
System.Windows.Controls.Primitives.StatusBarItem item1 =
    new System.Windows.Controls.Primitives.StatusBarItem();
System.Windows.Controls.Primitives.StatusBarItem item2 =
    new System.Windows.Controls.Primitives.StatusBarItem();
System.Windows.Controls.Primitives.StatusBarItem item3 =
    new System.Windows.Controls.Primitives.StatusBarItem();
Separator separator1 = new Separator();
Separator separator2 = new Separator();

// 左端のステータスバー項目を作成
item1.Content = "item1";
// ステータスバーに項目を追加
statusBar1.Items.Add(item1);
DockPanel.SetDock(item1, Dock.Left);

// セパレーターの挿入
statusBar1.Items.Add(separator1);
DockPanel.SetDock(separator1, Dock.Left);

// 右端のステータスバー項目を作成
item3.Content = "item3";
// ステータスバーに項目を追加
statusBar1.Items.Add(item3);
DockPanel.SetDock(item3, Dock.Right);

// セパレーターの挿入
statusBar1.Items.Add(separator2);
DockPanel.SetDock(separator2, Dock.Right);

// 中央のステータスバー項目を作成
// 最後の項目なので伸縮する項目となる
item2.Content = "item2";
// ステータスバーに項目を追加
statusBar1.Items.Add(item2);

// DockPanelにステータスバーを設置
DockPanel.SetDock(statusBar1, Dock.Bottom);
this.DockPanel1.Children.Add(statusBar1);

// DockPanelにテキストボックスを設置
TextBox txtInput = new TextBox();
DockPanel.SetDock(txtInput, Dock.Bottom);
this.DockPanel1.Children.Add(txtInput);
ポイント

 ステータスバー項目を配置するには添付プロパティDockPanel.Dockを使用する。
最後に追加した項目はWindowのサイズに合わせて伸縮する項目となる。

 

次のページ
04.ステータスバー項目の配置位置を設定する その2

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

  • 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/5852 2011/04/07 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング