WPF中文网

CheckBox复选框

CheckBox继承于ToggleButton,而ToggleButton才继承于ButtonBase基类。

CheckBox控件的结构定义:

public class CheckBox : ToggleButton
{
    public CheckBox();

    protected override void OnAccessKey(AccessKeyEventArgs e);
    protected override AutomationPeer OnCreateAutomationPeer();
    protected override void OnKeyDown(KeyEventArgs e);

}

CheckBox自身没有什么特别内容。一切都使用它的父类提供的属性、方法和事件。我们举例来说明它的用法。

前端代码

<Window x:Class="HelloWorld.MainWindow"
        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:HelloWorld"
        mc:Ignorable="d"
        Title="HelloWorld - www.wpfsoft.com" Height="350" Width="500">
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock Text="今晚吃什么菜?" Margin="5"/>
        <CheckBox Name="_checkbox1" Content="红烧牛肉" Margin="5"/>
        <CheckBox Name="_checkbox2" Content="麻婆豆腐" Margin="5"/>
        <CheckBox Name="_checkbox3" Content="夫妻肺片" Margin="5"/>
        <Button x:Name="_button" Content="查看菜单"  Click="_button_Click"/>
    </StackPanel>
</Window>

后端代码

namespace HelloWorld
{
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
            }

        private void _button_Click(object sender, RoutedEventArgs e)
        {
            string order = string.Empty;
            if (_checkbox1.IsChecked == true)
                order += _checkbox1.Content + ",";
            if (_checkbox2.IsChecked == true)
                order += _checkbox2.Content + ",";
            if (_checkbox3.IsChecked == true)
                order += _checkbox3.Content;
            if(!string.IsNullOrEmpty(order))
                MessageBox.Show(order);
        }
    }
}

}

如上图所示,这是前端代码呈现的界面。F5启动后,我们勾选两个选项,然后点击查看菜单,观察结果。

我们通过判断CheckBox的IsChecked属性,来获取前端用户的选择,这通常是CheckBox控件最常用的用法,由于IsChecked是一个依赖属性,它还可以参与绑定,形成MVMM的应用模式,待我们讲到数据绑定章节,还会进一步讲解控件属性的绑定应用。

当前课程源码下载:(注明:本站所有源代码请按标题搜索)

文件名:018-《CheckBox复选框》-源代码
链接:https://pan.baidu.com/s/1yu-q4tUtl0poLVgmcMfgBA
提取码:wpff

——重庆教主 2023年8月23日

copyright @重庆教主 WPF中文网 联系站长:(QQ)23611316 (微信)movieclip (QQ群).NET小白课堂:864486030 | 本文由WPF中文网原创发布,谢绝转载 渝ICP备2023009518号-1