我需要在同一数据网格单元中具有三个组合框,如下所示:
<Grid Name="gridFormat_1" Grid.Row="1" Grid.Column="6" Margin="0, 5, 5, 5" >
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<ComboBox Grid.Row="0" Name="monthsCB" DisplayMemberPath="MonthName" IsEnabled="False" Opacity="0" />
<ComboBox Grid.Row="0" Name="quartalsCB" DisplayMemberPath="QuartalNumber" IsEnabled="False" Opacity="0" />
<ComboBox Grid.Row="0" Name="yearsCB" DisplayMemberPath="Year" IsEnabled="False" Opacity="0" />
</Grid>
我希望能够在给定的时间显示/隐藏某些组合框。但是,尽管Opacity和IsEnabled可以隐藏/显示,禁用/启用除我选择的组合框之外的每个组合框,但我无法单击“ yearsCB”下方的组合框,因为它是最后添加的。
这意味着其他两个组合框不会收到鼠标事件。
我发现我应该使用其他WPF标签包装组合框,以便在每个组合框上切换ZIndex。
哪个标签可以使我操纵Canvas或ZIndex?
还是有其他更好的方法来实现这一目标?
答案 0 :(得分:3)
如果需要设置ZIndex,可以使用属性
进行设置Panel.ZIndex="1"
数字越大,项目越高。默认ZIndex为0。
在WPF中,您将元素放置在其父对象内-在这种情况下,父元素是Grid。 Grid class源自Panel class,Panel具有ZIndex attached property。
如果要在一个位置中的3个组合框之间切换,则应更改其可见性。如果用户界面中启用了元素,则不透明度仅更改视觉状态,并设置IsEnabled。
对于隐藏的组合框:
Visibility="Hidden"
对于可见的组合框:
Visibility="Visible"