【问题标题】:What is the logic behind The order of DockPanel children elementsDockPanel子元素的顺序背后的逻辑是什么
【发布时间】:2015-07-31 07:49:47
【问题描述】:

我知道DockPanel 子元素的顺序很重要。我在某处读到,孩子的布局是根据所有先前孩子已经定位后剩余的可用空间来确定的。以这段代码为例:

<DockPanel>
    <Button DockPanel.Dock="Bottom" Height="20" Content="MyButton"/>
    <DataGrid Name="dataGrid" ItemsSource="{Binding CarList.Items}"/>
</DockPanel>

我得到如下图所示的结果,其中我的按钮按预期停靠在 底部

现在,如果我像这样更改子元素的顺序:

<DockPanel>
    <DataGrid Name="dataGrid" ItemsSource="{Binding CarList.Items}"/>
    <Button DockPanel.Dock="Bottom" Height="20" Content="MyButton"/>
</DockPanel>

布局变得奇怪:

不管我的 Button 使用了剩余的可用空间,它至少不应该停靠在这个空间的底部吗?

【问题讨论】:

标签: wpf user-interface wpf-controls dockpanel


【解决方案1】:

您没有考虑 DockPanel LastChildFill 属性。如您所见:

如果最后一个子元素被拉伸以填充剩余空间,则为真; 否则为假。默认值为 true。

反正你可以找到一个很好的教程here

【讨论】:

  • 没错,我想我很困惑,因为我为我的按钮设置了Height。谢谢。
猜你喜欢
  • 2015-08-12
  • 2019-05-30
  • 2018-06-18
  • 2020-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多