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 的高度设置为 *,但没有帮助。

有什么想法吗?

编辑:问题是包装面板。我将其更改为网格,定义了具有*高度和宽度的行和列。将我的元素添加到网格行和列后,列表框在展开后折叠为滚动。谢谢你的帮助。

WPF - 列表框退出屏幕

似乎您可以通读 MSDN 上的面板概述页面。不同的Panel有不同的行为,所有新的 WPF 开发人员都知道这些差异非常重要。例如,Grid可以自动调整其内容(放置在其中的控件(的大小,而WrapPanel则不会。

因此,当希望约束控件的尺寸时,应将它们放入Grid或提供该功能的其他Panel之一中,并避免使用不提供该功能的控件。

你说:

我试图将网格行的高度设置为 *,但没有帮助

那是因为你的ListBox不在Grid......它的父WrapPanel可能在Grid中,因此您可以尝试将其Grid.Row设置在上面。