微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight:拉伸到StackPanel中剩余的空间

我有一个垂直的StackPanel有两个元素:一个Button和一个ListBox。如何让ListBox扩展到剩余的页面高度?

<StackPanel Height="Auto" Width="Auto">
    <Button Height="30" Width="100" Content="Get Content" x:Name="GetContent"/>
    <ListBox Height="Auto" Width="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
</StackPanel>

注意,我使用Grid容器工作:

<Grid>
    <Grid.RowDeFinitions>
        <RowDeFinition Height="Auto"/>
        <RowDeFinition Height="*"/>
    </Grid.RowDeFinitions>
    <Grid.ColumnDeFinitions>
        <ColumnDeFinition Width="*"/>
    </Grid.ColumnDeFinitions>
    <Button Width="100" Height="30" Content="Get Content" Click="OnGetContent" Grid.Row="0" Grid.Column="0"/>
    <data:DataGrid x:Name="MyContent" Margin="0,5" Grid.Row="1" Grid.Column="0"/>
</Grid>

解决方法

嗯,你已经找到了解决方案;)StackPanels将不会填充任何剩余的空间,认情况下,因为它们的大小总是等于其子元素的组合所需的大小。网格是一个伟大的方式去,因为它会动态调整大小时浏览器的大小变化。 Mark的回答使用DockPanel也很好。唯一的其他方法是在父控件的大小更改时手动调整元素大小。一般通过,坚持使用Grids为外部布局,他们填充他们StackPanels和其他控件,你应该设置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐