C# WPF窗口,带有2个网格,使用矩形
我试着做到以下几点:我有一个WPF窗口,有两个网格。外部网格是我的登录网格,内部包含我的组合框。当程序检查下面的人是否是管理员时,我编写了一个代码。如果没有,只需打开一个新窗口,如果是admin,则会出现一个组合框,您可以在组合框值之间进行选择,因此程序会将您选择的公共窗口删除C# WPF窗口,带有2个网格,使用矩形,c#,wpf,combobox,C#,Wpf,Combobox,我试着做到以下几点:我有一个WPF窗口,有两个网格。外部网格是我的登录网格,内部包含我的组合框。当程序检查下面的人是否是管理员时,我编写了一个代码。如果没有,只需打开一个新窗口,如果是admin,则会出现一个组合框,您可以在组合框值之间进行选择,因此程序会将您选择的公共窗口删除 <Grid Name="Grid1"> ---Textboxes and Buttons for my Login--- <Grid Name="Grid2" Visibility="Hidden"&
<Grid Name="Grid1">
---Textboxes and Buttons for my Login---
<Grid Name="Grid2" Visibility="Hidden">
<Canvas Name="CanvaS" Width="200" Height="90">
<ComboBox Width="180" Height="30" Name="CBBox">
<ComboBoxItem Name="Item1">Item1 Instruction
</ComboBoxItem>
<ComboBoxItem Name="Item2">Item2 Instruction
</ComboBoxItem>
<Button Name="Window" Click="Window_Click"/>
</Canvas Width="200" Height="90">
</Grid>
</Grid>
因此,我想要以下内容:如果我登录并且用户是管理员,这已经被选中,我的主网格将淡出并尝试使用矩形,但对我不起作用,或者所有按钮都被禁用,画布将弹出,位于网格2中。唯一的问题是,如果我将Grid1设置为Hidden,整个窗口都设置为Hidden,甚至Grid2,如果我将Grid1设置为IsEnabled=False,也不能单击Grid2。那么我该如何解决这个问题呢?或者我应该在代码中的什么地方使用矩形,并且不透明度是多少?
其他一切都在我的代码中工作,我只是无法解决这个问题,这就是为什么我只显示代码的这一部分。您必须将Grid2从Grid1中取出,因为您不能在禁用的父控件中启用子控件。首先,您提供的代码中存在一些问题,我认为这段代码不适合您,因为几乎没有缺少/不合适的结束标记 问题是您已将Grid2作为子项添加到grid1中。因此,为Grid1执行的所有操作都将自动影响Grid2。您需要将Grid2从Grid1中取出 见下文
<Grid Name="MainGrid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Name="Grid1" Grid.Row="0">
</Grid>
<Grid Name="Grid2" Visibility="Hidden" Grid.Row="1">
<Canvas Name="CanvaS" Width="200" Height="90">
<ComboBox Width="180" Height="30" Name="CBBox">
<ComboBoxItem Name="Item1">Item1 Instruction
</ComboBoxItem>
<ComboBoxItem Name="Item2">Item2 Instruction
</ComboBoxItem>
<Button Name="Window" Click="Window_Click"/>
</ComboBox>
</Canvas>
</Grid>
</Grid>
您确实需要阅读更多关于WPF中布局的内容。如果外部网格被隐藏/禁用,那么内部网格当然也将被隐藏/禁用。您可以尝试再创建一个grid/stackpanel并将这两个网格放在其中,而不是将grid2放在grid1中。这样隐藏/禁用一个不会影响其他人谢谢大家的帮助!解决了!: