【问题标题】:WPF ListBox problem with resolutionWPF ListBox 问题的解决方法
【发布时间】:2009-03-19 10:32:05
【问题描述】:

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

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

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

我需要一个滚动条来实现正常的 1024*768 分辨率,所以我必须输入 MinHeight 和 MaxHeight。

有没有什么办法可以查看扩展的ListBox,它占用了空间以获得更高的分辨率?

谢谢

【问题讨论】:

  • 没有代码真的很难说,真的
  • 我同意,您的问题可能是您的列表框位于哪种类型的面板中。我们可以看看一些代码吗?

标签: wpf listbox


【解决方案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>

【讨论】:

    【解决方案2】:

                    <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>
    

    【讨论】:

    • 包含列表框的行将自动调整大小。这意味着它只会和 ListBox 要求的一样大。请参阅我的帖子以获取解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    相关资源
    最近更新 更多