我在窗口中定义了我的分组框,如下所示
<ScrollViewer>
<Grid Name="gridMain">
<GroupBox x:Name="grp" Header="Group" Margin="0,71,0,0">
<Grid Margin="0,69,0,0" x:Name="gridmain">
<CheckBox x:Name="ChkShow" Content="Hide Controls" IsChecked="True" Checked="ChkShow_Checked" Unchecked="ChkShow_Unchecked" Margin="27,52,76,38"></CheckBox>
<Label x:Name="lblUsername" Content="Username" Margin="21,10,107,68" Visibility="Hidden"></Label>
</Grid>
</GroupBox>
</Grid>
</ScrollViewer>
这是我的代码来显示/隐藏控件
private void ChkShow_Unchecked(object sender, RoutedEventArgs e)
{
lblUsername.Visibility = Visibility.Hidden;
}
private void ChkShow_Unchecked(object sender, RoutedEventArgs e)
{
lblUsername.Visibility = Visibility.Visible;
}
但是我无法找到它变为null的控件,所以如何解决这个问题
最佳答案
一切都与秩序有关。
首先创建CheckBox
。附加了事件处理程序,并将值设置为True
。事件处理程序将触发并尝试调用尚未创建的Label
。因此,Label
具有值null
。
如果将标签移到CheckBox
上方,它将起作用。如果以后再附加事件处理程序,例如在OnLoad
方法中,它也将起作用。
关于c# - 组框WPF中控件的可见性设置问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40416903/