[Windows ストア アプリ] CheckBoxコントロールで3ステートを使用する

CheckBox コントロールはオン/オフ/不確定の3つの状態(3ステート)を使用することができます。

3ステートを使用するには IsThreeState プロパティに True を設定します(既定値は False です)。

チェック状態にするにはIsChecked プロパティに Trueを、未チェック状態にするにはFalseを設定します。

3つめの「不確定状態」は、 XAML では{x:Null} を 、VB.NET では Nothingを、C#ではNull を設定します。

下記は3つのCheckBoxコントロールに、それぞれオン/オフ/不確定を設定する例です。

XAMLの例

<CheckBox Content="チェックオン" IsChecked="True" IsThreeState="True" />
<CheckBox Content="チェックオフ" IsChecked="False" IsThreeState="True" />
<CheckBox Content="不確定" IsChecked="{x:Null}" IsThreeState="True" />

VBの例

'3ステートを使用できるようにする
CheckBox1.IsThreeState = True
CheckBox2.IsThreeState = True
CheckBox3.IsThreeState = True

'それぞれのチェックボックスにオン、オフ、不確定を設定する
CheckBox1.IsChecked = True	'オン
CheckBox2.IsChecked = False	'オフ
CheckBox3.IsChecked = Nothing	'不確定

C#の例

//3ステートを使用できるようにする
checkBox1.IsThreeState = true;
checkBox2.IsThreeState = true;
checkBox3.IsThreeState = true;

//それぞれのチェックボックスにオン、オフ、不確定を設定する
checkBox1.IsChecked = true;	// オン
checkBox2.IsChecked = false;	// オフ
checkBox3.IsChecked = null;	// 不確定

[Windows ストア アプリ] CheckBoxコントロールのチェック状態を取得する

CheckBoxコントロールのチェック状態を取得するには、IsChecked プロパティを使用します。Trueの場合はチェック状態を表します。

下記は、ボタンがクリックされたときに「VB」と書かれたチェックボックスのチェック状態を取得して、メッセージを表示する例です。

VB

Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
    Dim messageDialog As New MessageDialog("")

    If chkVB.IsChecked = True Then
        messageDialog.Content = "VBはチェックされています。"
    Else

        messageDialog.Content = "VBはチェックされていません。"
    End If
    Await messageDialog.ShowAsync()
End Sub

C#

private async void btnCheckState_Click(object sender, RoutedEventArgs e)
{
    var messageDialog = new MessageDialog("");

    if (chkVB.IsChecked == true)
    {
        messageDialog.Content = "VBはチェックされています。";
    }
    else
    {
        messageDialog.Content = "VBはチェックされていません。";
    }

    await messageDialog.ShowAsync();
}

[Windows ストア アプリ] CheckBoxコントロールの表面に表示するテキストを設定する

CheckBoxコントロールの表面に表示するテキストを表示するにはContentプロパティを使用します。

たとえば「VB」や「C#」という文字列を表示する場合は下記のようにします。

*XAMLのコードは、わかりやすくするために必要な属性のみ記述しています。

XAMLの例

<TextBlock Text="好きな言語にチェックを付けてください"/>
<CheckBox x:Name="CheckBox1" Content="VB"/>
<CheckBox x:Name="CheckBox2" Content="C#"/>

VBの例

CheckBox1.Content = "VB"
CheckBox2.Content = "C#"

C#の例

checkBox1.Content = "VB";
checkBox1.Content = "C#";

a