1.CheckBox控件介绍

复选框 允许可以选择多个 ContentControl

常用属性 Content Name IsChecked(true false null) IsThreeState Tag

动态添加

获取已勾选选项 父容器 —Grid Children —子元素的集合

2.具体案例

<Grid Name="grid1">
    <!--中间状态时 IsChecked  空-->
    <!--<CheckBox Name="chkSport" Content="体育" IsChecked="True" IsThreeState="True" HorizontalAlignment="Left" Margin="264,117,0,0" VerticalAlignment="Top"/>
    <CheckBox Content="唱歌"  HorizontalAlignment="Left" Margin="337,120,0,0" VerticalAlignment="Top"/>
    <CheckBox Content="跳舞"  HorizontalAlignment="Left" Margin="398,120,0,0" VerticalAlignment="Top"/>-->
    <Button Content="添加" HorizontalAlignment="Left" Margin="255,169,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
    <Button Content="获取" Name="btnGet" HorizontalAlignment="Left" Margin="369,169,0,0" VerticalAlignment="Top" Width="75" Click="BtnGet_Click"/>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
    //MessageBox.Show(chkSport.IsChecked.ToString());


   

    //代码动态添加CheckBox
    string[] names = { "体育", "唱歌", "跳舞", "绘画" };
    for (int i = 0; i < names.Length; i++)
    {
        CheckBox chk = new CheckBox();
        chk.Content = names[i];
        chk.HorizontalAlignment = HorizontalAlignment.Left;
        chk.VerticalAlignment = VerticalAlignment.Top;
        chk.Margin = new Thickness(40+i*80, 60, 0, 0);
        grid1.Children.Add(chk);
    }

}

private void BtnGet_Click(object sender, RoutedEventArgs e)
{
    //获取窗口中所有勾选的CheckBox的Content
    string strContens = "";
    foreach (UIElement ele in grid1.Children)
    {
        if (ele is CheckBox)
        {
            CheckBox chk = ele as CheckBox;
            if (chk.IsChecked == true)
            {
                if (strContens != "")
                    strContens += ",";
                strContens += chk.Content.ToString();
            }
        }
    }
    MessageBox.Show(strContens);
}