WPF中的ComboBox上的zIndex?

时间:2018-09-24 15:31:28

标签: c# wpf combobox z-index

我需要在同一数据网格单元中具有三个组合框,如下所示:

<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?

还是有其他更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

如果需要设置ZIndex,可以使用属性

进行设置
Panel.ZIndex="1"

数字越大,项目越高。默认ZIndex为0。

在WPF中,您将元素放置在其父对象内-在这种情况下,父元素是Grid。 Grid class源自Panel class,Panel具有ZIndex attached property

如果要在一个位置中的3个组合框之间切换,则应更改其可见性。如果用户界面中启用了元素,则不透明度仅更改视觉状态,并设置IsEnabled。

对于隐藏的组合框:

Visibility="Hidden"

对于可见的组合框:

Visibility="Visible"