我有一个WPF ListBox控件。它可以有很长的项目列表。
当我使用正常的屏幕分辨率,即1024 * 768时,如果我提到列表框的MinHeight和MaxHeight,它会正确显示滚动条的列表框。
当我切换到另一个分辨率,即1280 * 1024时,理想情况下,列表框应该适合屏幕分辨率。但是,它没有发生。由于我提到的高度,它保持不变,留下了很多空的空间,显然看起来不太好。
我需要一个普通1024 * 768分辨率的滚动条,所以我必须把MinHeight和MaxHeight放在一起。
有没有解决方案,查看扩展的ListBox,它可以正确占用空间以获得更高的分辨率?
由于
答案 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>