我有一个列表框,显示WinPhone 7编程中的视频标题和缩略图。 我将listbox链接到了ItemsSource。
listbox1.ItemsSource = videos;
在xaml中:
<Listbox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding title}"/>
<Image Source="{Binding thumbnail}"/>
</StackPanel>
</DataTemplate>
</Listbox.ItemTemplate>
现在我的列表框只有一列,每列都有标题文字和缩略图。 但我想要的是一个包含2列的列表框,每列在每行中都有标题文本和缩略图。
列表框
--------------------------- | title1 | title2 | | thumb1 | thumb2 | ---------------------------- | title3 | title4 | | thumb3 | thumb4 | ...
我花了很多时间试图找到解决方案,但我找不到它。 我希望堆栈溢出的人会为我解决这个问题。 欢迎任何想法。感谢
答案 0 :(得分:4)
使用
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation = "Horizontal">
<TextBlock Text="{Binding title}"/>
<Image Source="{Binding Thumbnail}"/>
<StackPanel/>
</DataTemplate>
</ListBox.ItemTemplate>
答案 1 :(得分:1)
除非我遗漏某些内容,否则我可以将StackPanel
的方向设置为水平
<StackPanel Orientation="Horizontal"/>
这就是你要找的东西吗?如果没有请详细说明。
编辑:使用WrapPanel作为ItemsPanel。
此示例使用Silverlight for Windows Phone Toolkit中的WrapPanel
。
您可能需要下载并安装它,或者包含命名空间定义以便工作!
另请注意,WrapPanel
将包装尽可能多的项目。因此,如果您只需要一行中的两个项目,则可能需要调整ListBox
的宽度。
<PhoneApplicationPage
....
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
....
>
<!-- More Stuff -->
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<Listbox.ItemTemplate>
<!-- your template -->
</Listbox.ItemTemplate>
</ListBox>
<!-- More Stuff -->