我有一个非常基本的布局,但仍然无法获得我想要的行为。愚蠢的我...
我的网格有两列,左为动态尺寸列,右为固定尺寸列。可以了 在右列中,我有一个包含两个按钮的堆栈面板,它们按照窗口的大小正确调整。
在左列中,我具有包含两个组框的扩展面板,下部面板具有固定的高度,并停靠在底部。就像我想要的那样,此组框跟随窗口的大小正确调整。
但是我无法获得上方的分组框来填充dockpanel的上部。我只能将其高度设置为固定,或者将其设置为“自动”时,其高度会变得奇怪,为23 ...?我希望它填充区域并按照窗口大小调整。我也尝试在本专栏中使用stackpanel,但没有成功。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="220"/>
</Grid.ColumnDefinitions>
<DockPanel x:Name="GroupPanel" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<GroupBox x:Name="AlarmGroup" Header="Alarms" Margin="10" DockPanel.Dock="Top" />
<GroupBox x:Name="LogGroup" Header="Log" Height="188" Margin="10" VerticalAlignment="Bottom" />
</DockPanel>
<StackPanel x:Name="ButtonPanel" Width="190" Grid.Column="1">
<Button x:Name="StartButton" DockPanel.Dock="Right" Width="150" Height="40" VerticalAlignment="Top" Margin="0,20,10,0">Start</Button>
<Button x:Name="StopButton" DockPanel.Dock="Right" Width="150" Height="40" VerticalAlignment="Top" Margin="0,10,10,0">Stop</Button>
</StackPanel>
</Grid>
默认情况下,DockPanel
使用最后一个子项填充其剩余空间。
您已将设置AlarmGroup
GroupBox
为第一个孩子,因此它仅占用所需的空间。这是默认值。第二个孩子的高度固定,因此不会占用其余空间。
要获得所需的布局,请先LogGroup
成为的第一个孩子,GroupPanel
然后将其DockPanel.Dock
属性设置为Bottom
。
例
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="220"/>
</Grid.ColumnDefinitions>
<DockPanel x:Name="GroupPanel">
<GroupBox x:Name="LogGroup" Header="Log"
DockPanel.Dock="Bottom"
Height="188" Margin="10"/>
<GroupBox x:Name="AlarmGroup" Header="Alarms"
DockPanel.Dock="Top"
Margin="10"/>
</DockPanel>
<StackPanel x:Name="ButtonPanel"
Width="190"
Grid.Column="1">
<Button x:Name="StartButton"
Width="150" Height="40"
VerticalAlignment="Top"
Margin="0,20,10,0">Start</Button>
<Button x:Name="StopButton"
Width="150" Height="40"
VerticalAlignment="Top"
Margin="0,10,10,0">Stop</Button>
</StackPanel>
</Grid>
结果
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句