gpt4 book ai didi

WPF Combobox - 如何在不滚动的情况下显示两个项目的全部内容?

转载 作者:行者123 更新时间:2023-12-04 20:21:04 27 4
gpt4 key购买 nike

以下ComboboxWPF 项目中,每个项目都需要始终恰好有两个高度分别为 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>

上述组合框的屏幕截图:

当用户第一次点击组合框的下拉菜单时显示:

enter image description here

用户必须滚动才能到达组合框的第二项:

enter image description here

最佳答案

您可以使用 ComboBox 的依赖属性 MaxDropDownHeight 如下所示,无需滚动即可在下拉列表中显示两个组合框项目,

        <ComboBox DockPanel.Dock="Top" Width="25" MaxDropDownHeight="Auto">

我已经用 320 Height 测试了你的代码,它工作得很好。如果需要添加更多项目,可以相应地增加 MaxDropDownHeight 值。

关于WPF Combobox - 如何在不滚动的情况下显示两个项目的全部内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57062996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com