是否可以在WPF中反选复选框? 例如:是否有3个复选框A,B,C,并且选中了复选框A和C,而未选中B。 Image1: Before clicking on the inverse button, A and C are checked 如果单击按钮进行反向选择,则应取消选中A和C,而应选中B,如图2所示
image2: After clicking on inverse button, B is checked and A , C are unchecked
答案 0 :(得分:0)
编辑: 在添加了要动态创建复选框的信息之后,我建议您使用以下XAML代码:
<StackPanel Name="stk">
<!-- Add checkboxes dynamically to this stackpanel -->
<Button Click="Button_Click">Invert</Button>
</StackPanel>
还有此Click事件
private void Button_Click(object sender, RoutedEventArgs e)
{
foreach (var cb in stk.Children.OfType<CheckBox>())
{
cb.IsChecked = !cb.IsChecked;
}
}
使用它来添加复选框:
stk.Children.Add(new CheckBox());
答案 1 :(得分:-1)
<StackPanel>
<CheckBox Name="CB1" Content="A" IsChecked="True"></CheckBox>
<CheckBox Name="CB2" Content="B"></CheckBox>
<CheckBox Name="CB3" Content="C" IsChecked="True"></CheckBox>
<Button Name="btnInvert" Content="Invert" Click="btnInvert_Click" ></Button>
</StackPanel>
代码逻辑:
private void btnInvert_Click(object sender, RoutedEventArgs e)
{
if (CB1.IsChecked == true && CB3.IsChecked == true)
{
CB2.IsChecked = true;
CB1.IsChecked = false;
CB3.IsChecked = false;
}
else
{
CB2.IsChecked = false;
CB1.IsChecked = true;
CB3.IsChecked = true;
}
}
或者简单地:
private void btnInvert_Click(object sender, RoutedEventArgs e)
{
if (CB1.IsChecked == true && CB3.IsChecked == true)
{
CB2.IsChecked = true;
CB1.IsChecked = false;
CB3.IsChecked = false;
}
}
根据您的要求。
if (CB1.IsChecked == true && CB3.IsChecked == true&& CB2.IsChecked== false)
{
CB2.IsChecked = true;
CB1.IsChecked = false;
CB3.IsChecked = false;
}
else
{
CB2.IsChecked = false;
CB1.IsChecked = true;
CB3.IsChecked = true;
}