WPF ListBox问题与解决方案

时间:2009-03-19 10:32:06

标签: wpf listbox

我有一个WPF ListBox控件。它可以有很长的项目列表。

当我使用正常的屏幕分辨率,即1024 * 768时,如果我提到列表框的MinHeight和MaxHeight,它会正确显示滚动条的列表框。

当我切换到另一个分辨率,即1280 * 1024时,理想情况下,列表框应该适合屏幕分辨率。但是,它没有发生。由于我提到的高度,它保持不变,留下了很多空的空间,显然看起来不太好。

我需要一个普通1024 * 768分辨率的滚动条,所以我必须把MinHeight和MaxHeight放在一起。

有没有解决方案,查看扩展的ListBox,它可以正确占用空间以获得更高的分辨率?

由于

2 个答案:

答案 0 :(得分:1)

使用面板布置控件 - 不要使用明确的宽度和高度。例如:

<Grid>
    <Grid.RowDefinitions>
        <Row Height="*"/>
        <Row Height="Auto"/>
    </Grid.RowDefinitions>

    <!-- ListBox will take up all remaining space after the Button -->
    <ListBox/>
    <!-- Button will take up only the space it needs -->
    <Button Grid.Row="1"/>
</Grid>

答案 1 :(得分:0)

                                                                                                            

                <StackPanel Orientation="Horizontal"  Margin="0,0,0,5" VerticalAlignment="Top" HorizontalAlignment="Left" Grid.Row="0">
                    <Label  FontWeight="Bold" FontSize="11" HorizontalAlignment="Left" Margin="0,0,5,5">Term:</Label>
                    <ComboBox x:Name="Term" Margin="0,5,5,0">
                    </ComboBox>                        
                </StackPanel>
                <CheckBox Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="displaySummaryCheckBox" Margin="2,2,0,5"  FontSize="11" Content="Display Summary" IsChecked="True" FontWeight="Normal"></CheckBox>

            </Grid>                
            <Grid DockPanel.Dock="Bottom">

                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>

                    <Label Grid.Row="0" VerticalAlignment="Top" Margin="0,0,0,4" HorizontalAlignment="Left" FontWeight="Bold" FontSize="11">Display Columns</Label>
                    <ListBox Grid.Row="1" VerticalAlignment="Top" Margin="5,0,5,4" HorizontalAlignment="Left" x:Name="columnsList" Width="197"  FontSize="11">

                    </ListBox>
                    <Button Grid.Row="2"  Margin="5,0,5,2" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="selectAll" Width="75" Content="Select All" FontWeight="Normal"  FontSize="11" Height="23" Click="selectAll_Click"/>
                </Grid>

            </Grid>

        </DockPanel>