我有一个带有 StackPanel 的窗口,并且 StackPanel 有一个 ContentControl,它在运行时获取绑定到它的 UserControl。
(在 MainWindow.xaml 中)
<StackPanel Margin="6,14,5,6" Grid.Row="1">
<ContentControl Name="WindowContent" Content="{Binding}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
</StackPanel>
(在 MainWindow.xaml.cs 中)
WindowContent.Content = new MainWindowView();
我希望 UserControl(及其子控件)填充 StackPanel 中的空间。
我已检查所有高度和宽度都设置为自动,水平/垂直对齐设置为拉伸,水平/垂直内容对齐也设置为拉伸。
我有什么遗漏的吗?
这似乎是一个愚蠢的问题,但我无法让它发挥作用!
Thanks
StackPanel 容器的大小始终调整为其内容的最小大小。我相信您想使用 Grid 而不是 StackPanel;网格将尝试使用所有可用空间。
<Grid Margin="6,14,5,6" Grid.Row="1">
<ContentControl Name="WindowContent" Content="{Binding}" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" />
</Grid>
Edit:如果您想在网格中使用相同类型的堆叠功能,只需执行以下操作:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
</Grid>
这将产生 2 个最小大小的行(如 StackPanel),然后是一个占据所有剩余可用空间的行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)