WPF窗口有2个网格和使用矩形

时间:2014-10-20 08:00:35

标签: c# wpf combobox

我尝试执行以下操作:我有一个带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。那我怎么解决这个问题呢?或者我应该在我的代码中使用矩形和不透明度?  其他一切都在处理我的代码,我只能解决这个问题,这就是为什么我只显示我的代码的这一部分。

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>