我需要能够拥有尽可能多的控件以适应“列表框的一行”。目标不是浪费表格上的空间。列表框将是表格的70%高度(30%为彩带)和100%宽度。
我使用自定义ItemTempleSelector,因此列表中的控件将是以下组合:
标签+文本框,标签+组合框,标签+日期时间贴纸
当然这些出现在另一个之下,但我需要它们从左到右出现。 非常感谢。
答案 0 :(得分:4)
您需要做的是修改ListBox
的{{1}}以包含ItemsPanel
。这样你的项目将从左到右显示,然后回到下一行(我认为这就是你想要的)。您还需要禁用列表框中的水平滚动条。
WrapPanel
要考虑的另一件事是您使用 <ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
...your other stuff like the ItemTemplate
</ListBox>
,因为您希望他们能够选择每个项目吗?
如果没有,ListBox
将是一对一替换,重量较轻,不支持选择项目。
答案 1 :(得分:0)
也许我不明白这个问题,但为什么不把你的所有控件都放到Wrappanel中,这就是你在datatemplate中的根控制。