如何将WrapPanel itemssource设置为列表?

时间:2011-11-24 14:13:06

标签: wpf windows-phone-7 silverlight-toolkit wrappanel

我想在WrapPanel中显示一个图像列表。我怎么能这样做,或者我可以使用其他控制?

3 个答案:

答案 0 :(得分:22)

您绝对可以使用WrapPanel显示图像列表,垂直或水平滚动。要获得像People中心那样的全景图块效果,您可以执行以下操作:

       <controls:PanoramaItem Header="something" Orientation="Horizontal" Margin="0,-15,0,0" >                
            <ListBox Name="SomeList" Margin="0,0,-12,0" ItemsSource="{Binding SomeItemsList}" >
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <toolkit:WrapPanel x:Name="wrapPanel" Width="700" />
                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,17">                                
                            <Image Height="200" Width="200" Margin="12,0,9,0" Source="{Binding ImageURL}" />                                
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </controls:PanoramaItem>

请注意,ListBox中的WrapPanel确实会选择您定义的DataTemplate ..因此您可以完全自由地将任何列表绑定到WrapPanel。

希望这有帮助!

答案 1 :(得分:2)

是绝对不是WrapPanel,它没有ItemsSource,它不能列表。 使用ListBox,您可以设置ItemsSource。

修改

enter image description here

答案 2 :(得分:2)

搜索相同的内容并遇到此问题:Displaying a Collection of Items in a WrapPanel

<ItemsControl ItemsSource="{Binding ActorList}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding Image}" Height="100"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

或者您可以使用Xceed's SwitchPanel