为啥 DockPanel.Dock="Bottom" 将元素放在顶部?

Posted

技术标签:

【中文标题】为啥 DockPanel.Dock="Bottom" 将元素放在顶部?【英文标题】:Why does DockPanel.Dock="Bottom" put element at the top?为什么 DockPanel.Dock="Bottom" 将元素放在顶部? 【发布时间】:2010-11-03 14:08:45 【问题描述】:

以下代码将两个文本元素放在顶部,即使第二个被标记为“底部”。背景颜色一直到底部,因此 DockPanel 似乎一直延伸到底部。

我对 DockPanel 有什么不了解的地方?

<Window x:Class="TestIndexer934.Views.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:c="clr-namespace:TestIndexer934.Commands"
    Title="Main Window" Height="400" Width="800">
    <DockPanel HorizontalAlignment="Left" Background="Beige">
        <TextBlock DockPanel.Dock="Top" Text="Testing top"/>
        <TextBlock DockPanel.Dock="Bottom" Text="Testing bottom"/>
    </DockPanel>
</Window>

【问题讨论】:

【参考方案1】:

default DockPanel 的最后一项将填满剩余的可用内容区域。

如果您在 DockPanel 上设置 LastChildFill="False",您将看到您所期望的行为。你也可以在TextBlock上设置VerticalAlignment="Bottom"

【讨论】:

这里很可能是这种情况。见:msdn.microsoft.com/en-us/library/… 谢谢,那行得通,我记得看到过那个属性,现在知道它是干什么用的了

以上是关于为啥 DockPanel.Dock="Bottom" 将元素放在顶部?的主要内容,如果未能解决你的问题,请参考以下文章

具有依赖属性绑定到 DockPanel.Dock 附加属性的 WPF 自定义控件不起作用

[WPF 学习] 7.2 模板打印

wpf 怎么为label 添加 图标?

wpf DockPanel默认填充机制

C# wpf 中某个菜单如何隐藏啊

C# wpf 中某个菜单如何隐藏啊