0

我正在开发一个 Windows Phone 7 应用程序。我对此很陌生。

我在这里看到了带有一些图片的全景控件(在全景项目示例中)。

我想这样做,但我不知道怎么做。

如何使用列表框和 DataItemTemplate 做到这一点?或者有没有其他方法可以做到这一点?

我将拥有一个带有 URL 列表的 XML。我将添加与我在 XML 中的 url 一样多的图像。

但我的问题是如何填充那种矩阵?

如果你有什么不明白的,请告诉我。

4

1 回答 1

1

该特定示例是全景控件的手工副本。

理解它的最简单方法可能是下载并查看 - 请参阅http://phone.codeplex.com/SourceControl/changeset/view/55041#中“示例”PanoramaItem 中特定图片部分的源代码820130 - 您可以看到它是使用带有其样式的 ListBox 完成的PanoramaImageListBox

列表框:

 <ListBox x:Name="listBox2"
                         HorizontalAlignment="Left"
                         Width="600"
                         ItemsSource="{Binding Source={StaticResource PicturesLoader}, Path=Pictures}"
                         Style="{StaticResource PanoramaImageListBox}"
                         SelectionChanged="listBox_SelectionChanged"/>

样式:

<Style x:Key="PanoramaImageListBox" TargetType="ListBox">
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <my:MultiColumnsPanel Columns="3"
                            HorizontalAlignment="Left"
                            VerticalAlignment="Top"/>
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="ItemContainerStyle">
                <Setter.Value>
                    <Style TargetType="ListBoxItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="ListBoxItem">
                                    <Image Width="185" Margin="0,0,12,12"
                                           Source="{Binding Bitmap}"/>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
        </Style>

您可以看到这种样式使用了他们自己的类 - MultiColumnPanel - 请参阅http://phone.codeplex.com/SourceControl/changeset/view/55041#820131处的代码

于 2011-05-06T18:26:39.577 回答