Wpf 展开DockPanel的最后一个子项以填充用户调整大小的表单的其余部分
当用户重新调整WPF表单的大小时,让WPF表单的最后一个子级与表单一起展开时,我遇到了一个问题。最后一个元素是几个停靠DockPanel(嵌套DockPanel)中的最后一个。我对dockpanels的理解是,最后添加的未停靠元素将扩展以填充提供的剩余空间。然而,我无法获得这种行为,无论是由于使用了错误的控件还是由于我的XAML中没有看到的错误;任何帮助都将不胜感激 请记住,我对XAML和WPF有点陌生,所以我的术语和控件的使用可能有点粗糙Wpf 展开DockPanel的最后一个子项以填充用户调整大小的表单的其余部分,wpf,wpf-controls,Wpf,Wpf Controls,当用户重新调整WPF表单的大小时,让WPF表单的最后一个子级与表单一起展开时,我遇到了一个问题。最后一个元素是几个停靠DockPanel(嵌套DockPanel)中的最后一个。我对dockpanels的理解是,最后添加的未停靠元素将扩展以填充提供的剩余空间。然而,我无法获得这种行为,无论是由于使用了错误的控件还是由于我的XAML中没有看到的错误;任何帮助都将不胜感激 请记住,我对XAML和WPF有点陌生,所以我的术语和控件的使用可能有点粗糙 <Grid> <TabCon
<Grid>
<TabControl Margin="1">
<TabItem Header="TabItem">
<DockPanel LastChildFill="True" Height="Auto">
<Expander Header="Client Details" FlowDirection="RightToLeft" IsExpanded="True" Background="#FFC9C9B9" DockPanel.Dock="Top">
<Grid Grid.Row="0" FlowDirection="LeftToRight">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Margin="3">
<Label Content="Client Name:" Padding="3"/>
<TextBox Padding="3"/>
<Label Content="SPA Number:" Padding="3"/>
<TextBox Padding="3"/>
</StackPanel>
<StackPanel Grid.Column="1" Margin="3">
<Label Content="Session ID:" Padding="3"/>
<TextBox Padding="3"/>
<Label Content="Agent Name:" Padding="3"/>
<TextBox Padding="3"/>
</StackPanel>
</Grid>
</Expander>
<DockPanel Margin="2" DockPanel.Dock="Top" Background="DarkGray">
<Button Content="Copy" Margin="2" DockPanel.Dock="Right" Padding="3"/>
<Button Content="New Session" Padding="3" Margin="2" FontWeight="Bold"/>
<Label Content="Session ID:" Padding="3" Margin="2" FontWeight="Bold"/>
<ComboBox Padding="3"/>
</DockPanel>
<DockPanel Margin="5" DockPanel.Dock="Top">
<Label Content="Session ID:"/>
<TextBox MinWidth="60" Padding="3"/>
<Label Content="Session Type:"/>
<ComboBox Padding="3"/>
</DockPanel>
<DockPanel Margin="5" DockPanel.Dock="Top" VerticalAlignment="Top">
<Label Content="Problem:" MinWidth="60"/>
<RichTextBox Padding="3" VerticalScrollBarVisibility="Auto" MaxHeight="100" MinHeight="80"/>
</DockPanel>
**<DockPanel Margin="5" VerticalAlignment="Top" Background="AliceBlue">
<Label Content="Notes:" MinWidth="60"/>
<RichTextBox Padding="3" VerticalScrollBarVisibility="Auto" MaxHeight="400" MinHeight="200"/>
</DockPanel>**
</DockPanel>
</TabItem>
</TabControl>
</Grid>
**
**
嵌套DockPanel列表中的最后一个DockPanel(被**包围)是我试图填充表单空间的地方,因为它是垂直调整大小的,但它根本没有重新调整大小。从最后一个DockPanel中删除
垂直对齐=“Top”
。这将跳回拉伸,使其填满剩余空间(最大高度为400)。好吧,就是这样。出于好奇,为什么所包含控件的对齐会产生这种影响?它不是简单地确保包含的控件与dockpanel的顶部对齐吗?如果它不是拉伸,它将适合其最小大小的内容。这是有道理的,因为拉伸根本不是对齐,而是填充剩余的所有内容(如果父级允许的话):)