在我有很多项目(> 10)的组合框中,我需要:(a)在下拉菜单发生时显示所有项目 - 或:(b)减少项目之间的空间(看起来过多,几乎“卡通")
所以,我真的更喜欢两者。我该如何做一个或另一个或两者兼而有之?
看起来 MaxDropDownHeight 属性只是票,但设置为 Infinity 它不起作用/对 Infinity 有一个奇怪的定义。
这是其中一个存在此问题的 XAML:
<ComboBox x:Name="comboBoxDay" Grid.Row="4" Grid.Column="5" Margin="8" IsEnabled="False"></ComboBox>
...以及它包含的内容:
for (int i = 1; i < 32; i++)
{
comboBoxDay.Items.Add(i);
}
更新
将高度设置为 15 会截断部分文本;18 也是如此。即便如此,也只显示 3 月至 11 月。我还将 MaxDropDownHeight 设置为第一个 320,然后是 520。这是相关组合框的整个 XAML:
<ComboBox x:Name="comboBoxFromMonth" Grid.Row="1" Grid.Column="1"
Height="24" Width="80" MaxDropDownHeight="520" HorizontalAlignment="Left"
VerticalAlignment="Center" Margin="4">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Height="20" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
...(1 月、2 月和 12 月在没有滚动的情况下仍然无法显示,尽管下面有足够的空间 - 房地产不是问题)。
似乎组合框中的所有项目都应该默认显示,而不需要跳过箍来显示它们……至少有合理数量的项目(42 个或更少)。