VB のたまご

作成日: 2017/03/05, 更新日: 2017/03/05



StatusBar

    イメージ
  •  StatusBar は、画面下部に配置されて、ユーザーへの操作説明などを表示するためのコントロールです。 とりあえずどういう風に動くのか見てみましょう。 以下サンプルです。「StatusBarWindow1」という画面で作成していますが、「MainWindow」に書いても構いません。

  • スポンサーリンク


    <Window x:Class="StatusBarWindow1"
            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:z04_NormalControls"
            mc:Ignorable="d"
            Title="StatusBarWindow1" Height="300" Width="300">
    
        <Grid>
    
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
    
            <Button Content="button1" Margin="10" />
            
            <StatusBar Grid.Row="1">
                <StatusBarItem Content="text1" />
                <Separator />
                <StatusBarItem>
                    <Button Content="button2" />
                </StatusBarItem>
                <StatusBarItem>
                    <CheckBox Content="checkbox1" />
                </StatusBarItem>
            </StatusBar>
    
        </Grid>
        
    </Window>
    

  •  StatusBar は、大元の StatusBar と、1つ1つの項目となる StatusBarItem から成り立っています。 StatusBarItem には文字列やボタン等何でも含めることができますが、一般的には文字列を表示させる程度です。

  • スポンサーリンク


  •  続いて、プログラム上からステータスバーを変更してみます。

  • <Window x:Class="StatusBarWindow2"
            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:z04_NormalControls"
            mc:Ignorable="d"
            ResizeMode="CanResizeWithGrip"
            Title="StatusBarWindow2" Height="300" Width="300">
    
        <Grid>
    
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
    
            <Button Name="button1" Content="button1" Margin="10" />
    
            <StatusBar Grid.Row="1">
                <StatusBarItem Name="text1" Content="text1" />
                <Separator />
                <StatusBarItem>
                    <Button Content="button2" Click="Click" />
                </StatusBarItem>
                <StatusBarItem>
                    <CheckBox Content="checkbox1" Checked="Checked" Unchecked="Unchecked" />
                </StatusBarItem>
            </StatusBar>
    
        </Grid>
    
    </Window>
    

    Public Class StatusBarWindow2
    
        Private Sub Click(sender As Object, e As RoutedEventArgs)
    
            Me.button1.Content = "ボタンが押された"
            Me.text1.Content = "ボタンが押された"
    
        End Sub
    
        Private Sub Checked(sender As Object, e As RoutedEventArgs)
    
            Me.button1.Content = "チェックが付いた"
            Me.text1.Content = "チェックが付いた"
    
        End Sub
    
        Private Sub Unchecked(sender As Object, e As RoutedEventArgs)
    
            Me.button1.Content = "チェックが外れた"
            Me.text1.Content = "チェックが外れた"
    
        End Sub
    
    End Class
    

  •  ステータスバーに配置した各コントロールは、通常のコントロール扱いで制御できます。 ここではステータスバーに配置したボタンとチェック欄に対して、クリックやチェックイベントを定義しています。 実行して、ボタンをクリックしたり、チェック欄にチェックを付けてみてください。

  •  また、よくあるステータスバーの右端にリサイズグリップを表示するには、【Window】のプロパティである ResizeMode プロパティに「CanResizeWithGrip」を設定することで表示されるようになります。