作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下Combobox在 WPF
项目中,每个项目都需要始终恰好有两个高度分别为 256 和 36 的 Rectangles
。当用户单击 Combobox
的下拉按钮时,我想让它同时显示 ComboboxItems
而无需用户滚动。
问题:我们怎样才能实现它?目前它只显示第一个 ComboboxItem
(里面是 Aqua 颜色矩形),你必须滚动才能看到第二个 ComboboxItem
(里面是 YellowGreen 颜色矩形)。我已经尝试在组合框上设置 ScrollViewer.VerticalScrollBarVisibility="Hidden"
但这使它变得更糟,因为它甚至不允许显示第二个项目。
XANL:
<Window x:Class="Wpf_TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Wpf_TestApp"
mc:Ignorable="d"
Title="MainWindow" Height="569.455" Width="800">
<Grid>
<StackPanel Margin="5" Width="15">
<ComboBox DockPanel.Dock="Top" Width="25">
<DockPanel>
<ComboBoxItem DockPanel.Dock="Top">
<StackPanel Width="180" Height="260">
<Rectangle x:Name="MyRectangle" Fill="Aqua" Width="176" Height="256"/>
</StackPanel>
</ComboBoxItem>
</DockPanel>
<DockPanel>
<ComboBoxItem DockPanel.Dock="Top">
<StackPanel Width="180" Height="38">
<TextBlock Text="Second Item:" />
<Rectangle x:Name="MyOtherRectangle" Fill="YellowGreen" Width="176" Height="36"/>
</StackPanel>
</ComboBoxItem>
</DockPanel>
</ComboBox>
</StackPanel>
</Grid>
</Window>
上述组合框的屏幕截图:
当用户第一次点击组合框的下拉菜单时显示:
用户必须滚动才能到达组合框的第二项:
最佳答案
您可以使用 ComboBox
的依赖属性 MaxDropDownHeight
如下所示,无需滚动即可在下拉列表中显示两个组合框项目,
<ComboBox DockPanel.Dock="Top" Width="25" MaxDropDownHeight="Auto">
我已经用 320 Height
测试了你的代码,它工作得很好。如果需要添加更多项目,可以相应地增加 MaxDropDownHeight
值。
关于WPF Combobox - 如何在不滚动的情况下显示两个项目的全部内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57062996/
我是一名优秀的程序员,十分优秀!