WPF 中的CheckBox

最近需要使用该控件做一个选择,顺便温习一下该控件的基本使用方法。

示例1:

<StackPanel Margin="10">
            <Label FontWeight="Bold">请选择:</Label>
            <CheckBox>Python</CheckBox>
            <CheckBox IsChecked="True">Advance C#</CheckBox>
            <CheckBox>Prime C++</CheckBox>
 </StackPanel>

IsChecked属性为True时,被选中。
在这里插入图片描述

示例2:

CheckBox 继承自内容控件,意味可以使用自定义显示的内容。

<StackPanel Grid.Column="1" Margin="10">
            <Label FontWeight="Bold">请选择:</Label>
            <CheckBox>
                <TextBlock>
					<Run Foreground="Green" FontWeight="Bold">Python</Run>
                    Crash Course
                </TextBlock>
            </CheckBox>

            <CheckBox IsChecked="True">
                <WrapPanel>
                    <TextBlock>
					Help for Programmers <Run FontWeight="Bold"> C# 8.0 Pocket Reference</Run>
                    </TextBlock>
                    <Image Source="Images/question.png" Width="16" Height="16" Margin="5,0" />
                </WrapPanel>
            </CheckBox>

            <CheckBox>
                <TextBlock>
                    Beginning Through
   				 <Run Foreground="Blue" TextDecorations="Underline" FontWeight="Bold">C++ </Run>
                    Game Programming
                </TextBlock>
            </CheckBox>
        </StackPanel>

在三个复选框上,我对文本做了不同的处理,在中间的一个加入了一个 Image 控件。通过将控件指定为内容,而不仅仅是文本,我们可以更好地控制外观,无论您单击内容的哪个部分,它都会激活 CheckBox 并打开或关闭它.

在这里插入图片描述

示例3:

IsThreeState 属性。CheckBox 通常对应一个布尔值,这意味着它只有两种状态:真或假(开或关)。但是,由于布尔数据类型可能为空,有效地允许第三个选项(真、假或空),CheckBox 控件也可以支持这种情况。通过将 IsThreeState 属性设置为 true,CheckBox 将获得称为“不确定状态”的第三种状态。

<StackPanel Margin="10" Grid.Row="1" Grid.Column="0">
    <Label FontWeight="Bold">请选择:</Label>
    <StackPanel Margin="10,5">
       <CheckBox IsThreeState="True" Name="cbAllFeatures" Checked="cbAllFeatures_Checked" Unchecked="cbAllFeatures_Unchecked">Enable all</CheckBox>

       <StackPanel Margin="20,5">
          <CheckBox Name="cbFeatureAbc" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Python</CheckBox>
          <CheckBox Name="cbFeatureXyz" IsChecked="True" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Advance C#</CheckBox>
          <CheckBox Name="cbFeatureWww" Checked="cbFeature_CheckedChanged" Unchecked="cbFeature_CheckedChanged">Prime C++</CheckBox>
      </StackPanel>
</StackPanel>
</StackPanel>
  

private void cbFeature_CheckedChanged(object sender, RoutedEventArgs e)
        {
            cbAllFeatures.IsChecked = null;
            if ((cbFeatureAbc.IsChecked == true) && (cbFeatureXyz.IsChecked == true) && (cbFeatureWww.IsChecked == true))
                cbAllFeatures.IsChecked = true;
            if ((cbFeatureAbc.IsChecked == false) && (cbFeatureXyz.IsChecked == false) && (cbFeatureWww.IsChecked == false))

                cbAllFeatures.IsChecked = false;
        }

  
  

private void cbAllFeatures_Checked(object sender, RoutedEventArgs e)
        {
            bool newVal = (cbAllFeatures.IsChecked == true);
            cbFeatureAbc.IsChecked = newVal;
            cbFeatureXyz.IsChecked = newVal;
            cbFeatureWww.IsChecked = newVal;
        }

在这里插入图片描述

示例4:

动态添加CheckBox

<StackPanel Grid.Row="1" Grid.Column="1" Margin="5" x:Name="sp4">
            <CheckBox Name="McCheckBox1"  Content="Check Me" 
                IsChecked="True" IsThreeState="True" >
            </CheckBox>

            <CheckBox Name="McCheckBox" 
              Content="Check Me" 
              IsChecked="True" IsThreeState="True" 
              Checked="McCheckBox_Checked"  Unchecked="McCheckBox_Unchecked">
            </CheckBox>

            <Button  x:Name="btnDynamicAdd" Click="btnDynamicAdd_Click" Margin="5">Dynamic Add</Button>
        </StackPanel>

后台代码

	private void McCheckBox_Checked(object sender, RoutedEventArgs e)
	{
    	McCheckBox.Content = "Checked";
 	}

        private void McCheckBox_Unchecked(object sender, RoutedEventArgs e)
        {
            McCheckBox.Content = "Unchecked";
        }
        
       private void CreateDynamicCheckBox()
        {
            CheckBox chb = new CheckBox();
            chb.Content = "Click me";
            chb.IsChecked = true;
            chb.Foreground = new SolidColorBrush(Colors.Orange);
            chb.IsChecked = true;
            sp4.Children.Add(chb);
        }

        private void btnDynamicAdd\_Click(object sender, RoutedEventArgs e)
        {
            CreateDynamicCheckBox();
        }

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值