Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF中组合框上的zIndex?_C#_Wpf_Combobox_Z Index - Fatal编程技术网

C# WPF中组合框上的zIndex?

C# WPF中组合框上的zIndex?,c#,wpf,combobox,z-index,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="monthsC

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

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

我希望能够在给定时间显示/隐藏某些组合框。但是,尽管不透明度和禁用,隐藏/显示,禁用/启用每个组合框(我选择的组合框除外),但我无法单击“yearsCB”下面的组合框,因为它是最后添加的

这意味着其他两个组合框不接收鼠标事件

我发现我应该使用一些其他的WPF标记来包装我的组合框,这样我就可以在每个组合框上切换ZIndex

哪一个标签可以让我操纵画布或ZIndex


或者有其他更好的方法来实现这一点吗?

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

Panel.ZIndex="1"
数字越大,项目越高。默认ZIndex为0

在WPF中,您将元素放置在其父元素内——在本例中,父元素是网格。派生自,面板具有

如果你想在一个位置的3个组合框之间切换,你应该改变它们的可见性。不透明度仅在UI中启用元素时更改视觉状态和IsEnabled集

对于隐藏的组合框:

Visibility="Hidden"
Visibility="Visible"
对于可见组合框:

Visibility="Hidden"
Visibility="Visible"

更新单个组合框的DisplayMemberPath是否比管理z顺序更容易?这不就是你要去的地方吗?基本上,将DisplayMemberPath绑定到单个属性并基于业务逻辑更新该属性。wpf中的DataTriggers可以解决您的问题。请描述一个场景,您希望组合框何时可见/隐藏。@sous2817我只有一个组合框,我用月份、四分之一和年份动态填充。我正在工作,但它与GUI混合在一起。现在尝试使用MVVM和INotifyPropertyChanged,但不确定如果组合框中值的数据类型动态更改,如何将单个组合框绑定到单个属性。@Sham我问了这个问题,或者这个站点上有很多示例。Visibility属性完成了这项工作。现在开始工作了。但我不明白如何应用Panel.ZIndex,因为ComboBox不包含属性Panel.Grid类是从Panel类派生的,它包含ZIndex属性。Combobox位于网格中,因此您可以将其设置为类似于Grid.Row。但我必须使用顶级网格对象以某种方式更改某些Combobox ZIndex??在您的情况下,网格是顶级对象,但更重要的是,它是Combobox的父对象。您正在将元素定位在其父元素内-在本例中,它是网格。