有人能帮我理解WPF的拉伸对齐方式吗?我经常遇到这样的问题:我想让一个控件填充一个区域,但我从来不明白应该在哪个级别上放置VerticalAlignment="Stretch"。特别是涉及到UserControls时。
我总是通过尝试不同的方法或在所有级别上都使用stretch来解决问题,但我希望了解如何正确地做到这一点。
让我们以我现在得到的示例为例:
- 我有一个具有固定大小单元格的网格(可以使用GridSplitter调整大小)
- 在此单元格中,我有一个包含TabControl的StackPanel的UserControl
- 在TabControl中,我有包含ListView的另一个UserControl的TabItems
或者在某种伪XAML中
<ns:MyUserControl1 Grid.Row="0" Grid.Column="0">
<!-- this is in MyUserControl1 -->
<StackPanel>
<TabControl>
<TabItem>
<ns:MyUserControl2>
<!-- This is in MyUserControl2 -->
<ListView/>
</ns:MyUserControl2>
</TabItem>
</TabControl>
</StackPanel>
</ns:MyUserControl>
现在我希望ListView填充整个网格单元(当然不包括TabControl和边距)。