C# Wpf列表框大小调整问题
我得到了一个包含两行网格的用户控件。每一行都有一个列表框。问题是,当项目被添加到listbox时,控件会继续扩展,这样第二行中包含的项目和listbox控件就看不见了 如何确保listbox控件在没有硬编码高度的情况下不会展开?当用户调整窗口大小时,每一行的大小应该相等,控件的大小应该可以调整 我尝试了很多东西和不同的容器,但还没有解决这个问题 示例代码:C# Wpf列表框大小调整问题,c#,wpf,xaml,listbox,grid-layout,C#,Wpf,Xaml,Listbox,Grid Layout,我得到了一个包含两行网格的用户控件。每一行都有一个列表框。问题是,当项目被添加到listbox时,控件会继续扩展,这样第二行中包含的项目和listbox控件就看不见了 如何确保listbox控件在没有硬编码高度的情况下不会展开?当用户调整窗口大小时,每一行的大小应该相等,控件的大小应该可以调整 我尝试了很多东西和不同的容器,但还没有解决这个问题 示例代码: <ScrollViewer HorizontalScrollBarVisibility="Visible"> &
<ScrollViewer HorizontalScrollBarVisibility="Visible">
<DockPanel LastChildFill="True" >
<Grid DockPanel.Dock="Right">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GroupBox Header="Allowed Countries" Grid.Column="0" Grid.Row="0">
<ListBox VerticalAlignment="Top" >
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
</ListBox>
</GroupBox>
<GroupBox Header="Allowed Languages" Grid.Column="0" Grid.Row="1">
<ListBox VerticalAlignment="Top" >
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
<ListBoxItem Content="Item 1" />
</ListBox>
</GroupBox>
/Grid>
</DockPanel>
</ScrollViewer>
/网格>
在本例中,listbox项是硬编码的,但当我解决了调整大小问题时,它们将在运行时绑定。之所以使用dockpanel,是因为usercontrol中除了网格之外还有其他控件
也许我使用了错误的控件/容器?我上次使用WPF已经有一段时间了,但我相信您描述的行为是ScrollViewer控件的错误
我在这里的想法是,ScrollViewer控件意味着WPF没有对Dockpanel的高度提供硬限制,因此它(及其子控件)将根据需要增长,而不管父窗口的高度如何 我通过将网格行的高度设置为(usercontrol的高度/2),解决了这个问题