Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Wpf列表框大小调整问题_C#_Wpf_Xaml_Listbox_Grid Layout - Fatal编程技术网

C# Wpf列表框大小调整问题

C# Wpf列表框大小调整问题,c#,wpf,xaml,listbox,grid-layout,C#,Wpf,Xaml,Listbox,Grid Layout,我得到了一个包含两行网格的用户控件。每一行都有一个列表框。问题是,当项目被添加到listbox时,控件会继续扩展,这样第二行中包含的项目和listbox控件就看不见了 如何确保listbox控件在没有硬编码高度的情况下不会展开?当用户调整窗口大小时,每一行的大小应该相等,控件的大小应该可以调整 我尝试了很多东西和不同的容器,但还没有解决这个问题 示例代码: <ScrollViewer HorizontalScrollBarVisibility="Visible"> &

我得到了一个包含两行网格的用户控件。每一行都有一个列表框。问题是,当项目被添加到listbox时,控件会继续扩展,这样第二行中包含的项目和listbox控件就看不见了

如何确保listbox控件在没有硬编码高度的情况下不会展开?当用户调整窗口大小时,每一行的大小应该相等,控件的大小应该可以调整

我尝试了很多东西和不同的容器,但还没有解决这个问题

示例代码:

<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),解决了这个问题