如何在标签中显示两个复选框的结果,其中一个正在被选中,甚至两个都在 WPF 中被选中?
Posted
技术标签:
【中文标题】如何在标签中显示两个复选框的结果,其中一个正在被选中,甚至两个都在 WPF 中被选中?【英文标题】:how can i display the result of two checkboxes in a label, which one is being checked or even both are being checked in a WPF? 【发布时间】:2020-07-17 10:32:44 【问题描述】:非常感谢您的帮助。 我是编程界的新手,所以我真的需要你的帮助!
问题是:
我有两个复选框和一个标签,通过选中标签应显示的每个复选框,其中一个正在被选中。如果两者都被检查,标签应该显示两者都被检查,但在两行。如果未选中,则应清除其自己的相关句子,而不是标签中的整个文本。
我的 XML:
<Grid HorizontalAlignment="Center"
VerticalAlignment="Center">
<StackPanel Width="350">
<CheckBox x:Name="CheckboxOne"
Content="First Checkbox"
Checked="FirstCheckbox"
Unchecked="UncheckedOne"/>
<CheckBox x:Name="CheckboxTwo"
Content="Second Checkbox"
Checked="SecondCheckbox"
Unchecked="UncheckedTwo"/>
<Label Name="LabelText"
Height="70"
Grid.Column="1"/>
</StackPanel>
</Grid>
我的 C#
private void FirstCheckbox(object sender, RoutedEventArgs e)
if (CheckboxOne.IsChecked == true)
LabelText.Content += "First checkbox is being checked";
private void SecondCheckbox(object sender, RoutedEventArgs e)
if (CheckboxTwo.IsChecked == true)
LabelText.Content += "Second checkbox is being checked";
private void UncheckedOne(object sender, RoutedEventArgs e)
if (CheckboxOne.IsChecked == false)
LabelText.Content = "";
private void UncheckedTwo(object sender, RoutedEventArgs e)
if (CheckboxTwo.IsChecked == false)
LabelText.Content = "";
我的一个期望应该是这样,以防两个都被检查!
第一个复选框被选中
第二个复选框被选中
非常感谢您的帮助!
【问题讨论】:
两个不同的句子是什么意思? 嘿,谢谢你的回复!我的意思是两行。 【参考方案1】:下面的代码应该做你想做的事:
private void FirstCheckbox(object sender, RoutedEventArgs e)
MakeLable();
private void SecondCheckbox(object sender, RoutedEventArgs e)
MakeLable();
private void UncheckedOne(object sender, RoutedEventArgs e)
MakeLable();
private void UncheckedTwo(object sender, RoutedEventArgs e)
MakeLable();
private void MakeLable()
if (CheckboxOne.IsChecked && CheckboxTwo.IsChecked)
LabelText.Content = $"First checkbox is being checkedEnvironment.NewLineSecond checkbox is being checked";
else if (CheckboxOne.IsChecked && !CheckboxTwo.IsChecked)
LabelText.Content = "First checkbox is being checked";
else if (!CheckboxOne.IsChecked && CheckboxTwo.IsChecked)
LabelText.Content = "Second checkbox is being checked";
else
LabelText.Content = "";
【讨论】:
非常感谢,首先我必须在每个 IsChecked 属性之后写 (==true)。现在,当两个复选框都被选中时,第一句之前会出现几个空格。顺便说一句,非常感谢! 你可以通过投票我的答案并选择它作为答案来感谢我;) 哦哈哈哈!我很抱歉!我不知道,我是农民!我希望,我点击了正确的图标 :)以上是关于如何在标签中显示两个复选框的结果,其中一个正在被选中,甚至两个都在 WPF 中被选中?的主要内容,如果未能解决你的问题,请参考以下文章