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);
}