WPF - 列表框退出屏幕
本文关键字:退出 屏幕 列表 WPF | 更新日期: 2023-09-27 18:19:03
<WrapPanel
HorizontalAlignment="Center"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<GroupBox
Header="{DynamicResource ResourceKey=StampUserTab_Strings}"
BorderThickness="1.3"
Style="{StaticResource GroupBoxBorder}" >
<ListBox
Grid.Row="1"
Name="ComponentBox"
ItemTemplate="{DynamicResource StringTemplate}"
VerticalContentAlignment="Stretch"
ScrollViewer.CanContentScroll="True"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
VerticalAlignment="Stretch"
ItemsSource="{Binding ActiveSettings.Components}"
SelectionChanged="ComponentBox_SelectionChanged"
Style="{StaticResource ResourceKey=SettingsListBoxUser}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</GroupBox>
</WrapPanel>
这是我的代码。主要问题是,当我将项目添加到列表框时,它会不断从我的屏幕中展开。我想让它绑定到屏幕,所以当它到达底部时,垂直滚动应用并可用于滚动内容。
我试图将网格 ro 的高度设置为 *,但没有帮助。
有什么想法吗?
编辑:问题是包装面板。我将其更改为网格,定义了具有*高度和宽度的行和列。将我的元素添加到网格行和列后,列表框在展开后折叠为滚动。谢谢你的帮助。
似乎您可以通读 MSDN 上的面板概述页面。不同的Panel
有不同的行为,所有新的 WPF 开发人员都知道这些差异非常重要。例如,Grid
可以自动调整其内容(放置在其中的控件(的大小,而WrapPanel
则不会。
因此,当希望约束控件的尺寸时,应将它们放入Grid
或提供该功能的其他Panel
之一中,并避免使用不提供该功能的控件。
你说:
我试图将网格行的高度设置为 *,但没有帮助
那是因为你的ListBox
不在Grid
......它的父WrapPanel
可能在Grid
中,因此您可以尝试将其Grid.Row
设置在上面。