在Expander
内部我有一个stack panel
,负责执行其他控制。指定的Expander
已加载到网格中。问题是当我扩展它时,它的内容被覆盖在网格后面并且无法看到。
我试图增加内部堆栈面板的ZIndex
以强制它克服网格,但它不起作用。
我还搜索了绝对位置(根据我在HTML和CSS中的背景)并找到了一些关于使用canvas的文章!
看起来帆布完全可以用于此目的,如果所有元素都放在其中,但正如我所说,我的主要布局是网格。
通常,画布中 元素的Z顺序由 在XAML中订购。但是你可以明确地覆盖自然的Z-Order 在元素上定义Canvas.ZIndex。
那么我该怎样做才能实现目标呢?
此部分已加载到网格列中。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Expander Background="White" Header="More Options">
<StackPanel Width="150" Height="25">
<CheckBox Margin="4" Content="Option 1" />
<CheckBox Margin="4" Content="Option 2" />
<CheckBox Margin="4" Content="Option 3" />
</StackPanel>
</Expander>
答案 0 :(得分:0)
我认为问题在于您将StackPanel上的高度设置为25.保持StackPanel高度不设置并且它将起作用:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Expander Background="White" Header="More Options">
<StackPanel Width="150">
<CheckBox Margin="4" Content="Option 1" />
<CheckBox Margin="4" Content="Option 2" />
<CheckBox Margin="4" Content="Option 3" />
</StackPanel>
</Expander>
</Grid>