none
怎样控制一个控件或布局容器的width或height的自动填满周围的剩余空间的功能? RRS feed

  • 问题

  • 有时候在布局内打一段布局或控件代码,希望他的width和height能自动填满那个布局剩余的空间。但有时候总是不填满。老是显示auto。要如何控制控件和布局容器的width和height的自动填满功能?

    2016年12月27日 9:37

答案

  • 你好 轮回的齿轮,

    >>但有时候总是不填满
    请问能否说明具体情况?用了什么父容器,什么子控件?

    针对不同的父容器,情况是不一样的。
    以DockPanel为例,它的最后一个子控件会尽可能填满剩余空间。

        <DockPanel Name="dockpanel1">
            <Grid Width="100" Background="Red"></Grid>
            <Grid Background="LightBlue"></Grid>
        </DockPanel>
    

    同样的子控件,将父容器换成StackPanel,就不是这样。

    <StackPanel Name="stackpanel1" Orientation="Horizontal">
            <Grid  Width="100" Background="Red"></Grid>
            <Grid Background="LightBlue"></Grid>
    </StackPanel>
    

    可以发现,此时未设置宽度的grid不显示。因为在StackPanel中,不是默认由最后一个子控件填满剩余空间的,而是需要明确告知stackpanel它的每个子控件所占用的空间(不设置宽高但子控件中有实际内容时,可以根据实际内容进行填充)。

    所以如果父容器可以选择,建议选用合适的父容器以便操作。

    关于上面用作例子的StackPanel和DockPanel,这篇文档供你参考:StackPanel DockPanel 之间进行选择

    Best Regards,

    Annievia Chen


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年12月28日 6:59
    版主