我需要能够有尽可能多的控件以适合“列表框的一行”。目的是不浪费表格上的空间。列表框将是表单的70%的高度(30%是功能区)和100%的宽度。
我使用自定义ItemTempleSelector,因此列表中的控件将是以下各项的组合:
标签+文本框,标签+组合框,标签+日期时间选择器
当然,它们会一个接一个地出现,但是我需要它们从左到右出现。
非常感谢。
最佳答案
您需要做的是修改ListBox
的ItemsPanel
以包含WrapPanel
。这样,您的项目将从左到右显示,然后向下滚动到下一行(我想这就是您想要的)。您还需要禁用列表框上的水平滚动条。
<ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
...your other stuff like the ItemTemplate
</ListBox>
要考虑的另一件事是您是否使用
ListBox
,因为您希望他们能够选择每个项目?如果不是,那么
ItemsControl
将是一对一的替换品,重量更轻,并且不支持选择商品。
关于wpf - 列表框项目中的多个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081066/