我将推动需要向用户展示图像组的触摸屏应用程序(不是Web应用程序)。希望呈现具有页面前向/后向能力的3×3网格图像。他们可以选择一些,我只会展示那些图像。
我没有看到ListView
完全符合我的要求(尽管WPF足够大,我可能错过了一些明显的东西!)。我可以在网格位置设置Grid
和填充图像。但我希望有更好的,更自动化的,更少蛮力的东西。有什么想法或指示吗?
答案 0 :(得分:7)
您可能希望使用ItemsControl
/ ListBox
,然后将UniformGrid
面板设置为3x3显示为ItemsPanel
,以获得正确的WPF可绑定解决方案。< / p>
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="3" Columns="3"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<Image Source="Images\img1.jpg" Width="100"/>
<Image Source="Images\img2.jpg" Width="50"/>
<Image Source="Images\img3.jpg" Width="200"/>
<Image Source="Images\img4.jpg" Width="75"/>
<Image Source="Images\img5.jpg" Width="125"/>
<Image Source="Images\img6.jpg" Width="100"/>
<Image Source="Images\img7.jpg" Width="50"/>
<Image Source="Images\img8.jpg" Width="50"/>
<Image Source="Images\img9.jpg" Width="50"/>
</ListBox>
如果您在此处寻找动态解决方案,则需要将Images的集合设置为ItemsSource绑定。但问题太广泛了,无法给出确切的答案。
答案 1 :(得分:6)
答案 2 :(得分:3)
您可以使用简单的ListBox
控件并自定义其ItemsPanel
模板并在其中添加WrapPanel
。 WrapPanel
将项目放在水平平铺布局中,您可以在其中设置其最大宽度以在一行中包含3个项目,并且它将为3个项目创建更多行,直到最后一个填充。