我建議你使用Data-Templating,而不是「通過圖片循環」,這樣就可以完全重複使用XAML。
有一個很好的Kaxaml樣品,展示圖片,DataTemplating:
<Grid>
<Grid.Resources>
<XmlDataProvider x:Key="flickrdata" Source="http://api.flickr.com/services/feeds/photos_public.gne?tags=flower&lang=en-us&format=rss_200">
<XmlDataProvider.XmlNamespaceManager>
<XmlNamespaceMappingCollection>
<XmlNamespaceMapping Prefix="media" Uri="http://search.yahoo.com/mrss/"/>
</XmlNamespaceMappingCollection>
</XmlDataProvider.XmlNamespaceManager>
</XmlDataProvider>
<DataTemplate x:Key="itemTemplate">
<Image Width="75" Height="75" Source="{Binding Mode=OneWay, XPath=media:thumbnail/@url}"/>
</DataTemplate>
<ControlTemplate x:Key="controlTemplate" TargetType="{x:Type ItemsControl}">
<WrapPanel IsItemsHost="True" Orientation="Horizontal"/>
</ControlTemplate>
</Grid.Resources>
<ItemsControl
Width="375"
ItemsSource="{Binding Mode=Default, Source={StaticResource flickrdata}, XPath=/rss/channel/item}"
ItemTemplate="{StaticResource itemTemplate}"
Template="{StaticResource controlTemplate}">
</ItemsControl>
</Grid>
這得到圖像的URL從WEB,但你可以綁定到ObservableCollection<string>
持有成像路徑。
我正在循環訪問一系列圖像路徑,並使用bitmapimage打開圖像並創建一個Image控件來分配。圖像列表數總是不同的,你是說數據模板將允許我這樣做? – Terco 2011-04-22 16:22:02
如果您使用正確的收藏,是的。在這種情況下,您應該使用'ObservableCollection',如果綁定了它並添加了新的圖像路徑,則ItemsControl將在模板正確的情況下自動創建新圖像。 –
2011-04-22 16:29:04
好的。我真的很欣賞這個方向。 – Terco 2011-04-22 19:00:30