我尝试执行以下操作:我有一个带2格的WPF窗口。外部网格是我的登录网格,内部包含我的组合框。当程序检查以下人员是否为管理员时,我编写了一个代码。如果没有,只需打开一个新窗口,如果是admin,就会出现一个组合框,你可以在组合框值之间进行选择,这样程序就会删除你选择的窗口。
<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>
所以我想要以下内容:如果我登录并且用户是管理员,已经检查过,我的主网格会消失(尝试使用矩形,但对我来说没有用)或者所有按钮都被禁用并且Canvas正在弹出,这是在Grid 2内部。唯一的问题是,如果我将Grid1设置为Hidden,整个窗口设置为隐藏,甚至是Grid2,如果我将Grid 1设置为IsEnabled =&#34; False&#34;,可以& #39; t既不点击网格2。那我怎么解决这个问题呢?或者我应该在我的代码中使用矩形和不透明度? 其他一切都在处理我的代码,我只能解决这个问题,这就是为什么我只显示我的代码的这一部分。
答案 0 :(得分:0)
您必须从Grid2
中取出Grid1
,因为您无法在{1}}内启用child control
答案 1 :(得分:0)
首先,您提供的代码存在一些问题,我不认为此代码适合您,因为很少有结束标记丢失/不合适。
问题是您已将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>