现在我将Height
中的wp_2
更改为450
,它会比stackMain
大,我将Canvas.ZIndex="100"
设置为wp_2
可以显示所有但仍被stackPanel隐藏的部分:有人知道要修复吗?谢谢大家!
答案 0 :(得分:0)
1。给裕度-50 top使其从顶部开始(从顶部重新初始化)。
2。在包装面板中,每个子控件都从其上一个控件的结束位置开始。
(在这种情况下,黄色从红色的结尾开始。) 将Margin =“ 0,-50,0,0”设为黄色
<WrapPanel Background="Yellow" Height="50" Margin="0,-50,0,0" ></WrapPanel>
答案 1 :(得分:0)
对于您提到的使用Grid
的方案是最佳解决方案。请参考以下代码:
<Grid Background="Black">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<WrapPanel Name="Wp1" Background="Red"/>
<WrapPanel Grid.Row="1" Name="Wp2" Background="Yellow" Height="500"/>
已编辑
由于您需要WrapPanel的另一层,而不是将其包装在Canvas
中。
<Grid x:Name="mainGrid" Background="Black">
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<WrapPanel Name="Wp1" Background="Red"/>
<Canvas Grid.Row="1" Panel.ZIndex="100" Height="500" Width="{Binding ActualWidth, ElementName=mainGrid}">
<WrapPanel Name="Wp2" Background="Yellow" Height="400" Width="{Binding ActualWidth, ElementName=mainGrid}"/>
</Canvas>
</Grid>
答案 2 :(得分:0)
也许您可以做这样的事情?
<Grid Background="Aquamarine" Margin="0 0 0 -270">
<Grid Background="Black" Margin="0 10 0 313">
<StackPanel Margin="0 0 0 -500">
<WrapPanel Background="Red" Height="50"/>
<WrapPanel Background="Yellow" Height="450"/>
</StackPanel>
</Grid>
</Grid>