gpt4 book ai didi

WPF 列表框不会垂直滚动

转载 作者:行者123 更新时间:2023-12-04 06:57:17 25 4
gpt4 key购买 nike

在 Groupbox 中,我有一个 Listbox,ListboxItems 也在 XAML 中定义。列表框定义为:

<ListBox Name="lvAvoidCountry" Margin="5,5,5,5"  
Background="Transparent"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollBarVisibility="Disabled" >

项目定义如下:
<ListViewItem >
<CheckBox Name="chkAlbanien" Tag="55">
<StackPanel Orientation="Horizontal">
<Image Source="images/flag_albania.png" Height="30"></Image>
<TextBlock Text="Albanien" Margin="5,0,0,0"></TextBlock>
</StackPanel>
</CheckBox>
</ListViewItem>

如果我删除 Scrollviewer 设置,我会得到水平滚动,并且项目格式正确 - 宽度正确。如果我使用滚动查看器设置,项目会被切断,以便所有项目都放在列表框上。 (例如,显示了标志,显示了复选框,但文本只是“Alba”)。

感谢您的任何提示!

最佳答案

顾名思义,ScrollViewer.HorizontalScrollBarVisibility="Disabled"禁用水平滚动。如果你这样做,但你的 ListBoxItems 太长,它们会被切断。 StackPanel 不会增大或缩小以适合 ListBox,并且如果太窄,它也不会“包裹”您的项目以适合 ListBox,即使您添加 TextWrapping到文本块。它非常顽固。我认为您的主要问题是 StackPanel。

尝试使用具有 2 列定义的 Grid,而不是 StackPanel:

<ListViewItem >
<CheckBox Name="chkAlbanien" Tag="55">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="images/flag_albania.png" Height="30"/>
<TextBlock Grid.Column="1"
TextWrapping="Wrap"
Text="Albanien" Margin="5,0,0,0"/>
</Grid>
</CheckBox>
</ListViewItem>
Auto将“收缩包装”图像列,和 *将为文本提供所有剩余空间。然后添加 TextWrapping到您的文本块,以防它仍然太长。

编辑:添加了更完整的代码示例并稍微更改了我的答案。

关于WPF 列表框不会垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2400273/

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