c# - WPF中组合框上的zIndex?
问题描述
我需要在同一个数据网格单元格中有三个组合框,如下所示:
<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?
还是有其他更好的方法来实现这一目标?
解决方案
如果需要设置 ZIndex,可以通过属性来设置
Panel.ZIndex="1"
数字越高,项目越高。默认 ZIndex 为 0。
在 WPF 中,您将元素定位在它们的父级内 - 在这种情况下,父级是 Grid。Grid 类派生自Panel 类,并且 Panel 具有ZIndex 附加属性。
如果您想在一个位置的 3 个组合框之间切换,您应该更改它们的可见性。如果元素在 UI 中启用,Opacity 只会更改视觉状态和 IsEnabled 设置。
对于隐藏的组合框:
Visibility="Hidden"
对于可见的组合框:
Visibility="Visible"
推荐阅读
- ram - Google Colab 中的内存使用量已接近极限
- rest - 休息助手 codeceptjs 和 docker
- c# - 是否可以在单击按钮时为 GridView 中的项目生成水晶报表?
- python - 在 python 上压缩 adb screencap
- python-3.x - 如何在 elasticsearch python 客户端的 es.index 中设置映射?
- javascript - ReactJS - 在状态下输入所有数据后,将我的加载更改为 false
- html - 如何将 div 置于另一个之下?
- algorithm - 算法分配的队列问题
- jquery - 在 content_script chrome 扩展中访问 jQuery
- bash - Bash 函数变量命令未找到错误