WPF:停靠 "Top" 和 "Bottom" 的 DockPanel 中的两个控件仍然在底部留下 space
WPF: Two controls in a DockPanel docked "Top" and "Bottom" still leaves space at the bottom
我有简单的 WPF 用户控件,如下所示。
我不明白为什么这段代码没有将绿色网格固定到 DockPanel 的底部:
如果我在两个块之间添加一些东西,那么绿色就会固定在底部:
这里是简单的代码:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:tWorks.Alfa.OperatorClient.UserControls.Vehicles"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol" x:Class="tWorks.Alfa.OperatorClient.UserControls.Vehicles.Misc_Vehicles_GpsTrackBarContext"
mc:Ignorable="d"
d:DesignHeight="260" d:DesignWidth="450">
<DockPanel>
<Grid DockPanel.Dock="Top" Height="50" Background="Red"></Grid>
<Grid DockPanel.Dock="Bottom" Height="50" Background="Green"></Grid>
<Grid Height="50" Background="Blue"></Grid>
</DockPanel>
</UserControl>
您需要防止最后一个 child 拉伸:
<DockPanel LastChildFill="False"/>
否则最后一个 child 的 DockPanel.Dock="Bottom"
将被忽略,而是放在整个剩余区域中。在那里它将居中对齐,因为它的 Height="50"
.
我有简单的 WPF 用户控件,如下所示。
我不明白为什么这段代码没有将绿色网格固定到 DockPanel 的底部:
如果我在两个块之间添加一些东西,那么绿色就会固定在底部:
这里是简单的代码:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:tWorks.Alfa.OperatorClient.UserControls.Vehicles"
xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol" x:Class="tWorks.Alfa.OperatorClient.UserControls.Vehicles.Misc_Vehicles_GpsTrackBarContext"
mc:Ignorable="d"
d:DesignHeight="260" d:DesignWidth="450">
<DockPanel>
<Grid DockPanel.Dock="Top" Height="50" Background="Red"></Grid>
<Grid DockPanel.Dock="Bottom" Height="50" Background="Green"></Grid>
<Grid Height="50" Background="Blue"></Grid>
</DockPanel>
</UserControl>
您需要防止最后一个 child 拉伸:
<DockPanel LastChildFill="False"/>
否则最后一个 child 的 DockPanel.Dock="Bottom"
将被忽略,而是放在整个剩余区域中。在那里它将居中对齐,因为它的 Height="50"
.