我正在开发一个Windows手机应用程序,其中rss链接在应用程序中给出。新闻结果显示正确,但图像未显示。这就是我在xaml中显示图像的方式
<ListBox Name="feedListBox" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible" Height="528" HorizontalAlignment="Left" Margin="9,97,0,0" VerticalAlignment="Top" Width="439" SelectionChanged="feedListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="132">
<Image Name="img" Source="{Binding ImageUri}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0" />
<StackPanel VerticalAlignment="Top">
<TextBlock TextDecorations="Underline" FontSize="24" Name="feedTitle" TextWrapping="Wrap" Margin="12,0,0,0" HorizontalAlignment="Left" Foreground="{StaticResource PhoneAccentBrush}" Text="{Binding Title.Text, Converter={StaticResource RssTextTrimmer}}" />
<TextBlock Name="feedSummary" TextWrapping="Wrap" Margin="12,0,0,0" Text="{Binding Summary.Text, Converter={StaticResource RssTextTrimmer}}" />
<TextBlock Name="feedPubDate" Foreground="{StaticResource PhoneSubtleBrush}" Margin="12,0,0,10" Text="{Binding PublishDate.DateTime}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
并且在.cs这是我检索的方式
img = feed.ImageUrl;
feedListBox.ItemsSource = feed.Items;
如何在我的应用中获取图片?
感谢名单
答案 0 :(得分:1)
您不能直接执行img = image
,因为它是每个列表项的模板,而不是屏幕上的特定图像。尝试使用转换器将您的Feed中的Url转换为Uri对象:
public class UrlToUriConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return new Uri(value.toString(), UriKind.Absolute);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
编辑:更多信息:
如上所述创建UrlToUriConverter转换器。
将该转换器插入您的页面资源:
<phone:PhoneApplicationPage.Resources>
<src:UrlToUriConverter x:Key="UrlToUri"/> </phone:PhoneApplicationPage.Resources>
src
是转换器的命名空间,应添加到<phone:PhoneApplicationPage
标记中,例如。 xmlns:src="clr-namespace:TestProject"
在Image.Source绑定中使用该转换器:
<Image Source="{Binding LineOne, Converter={StaticResource UrlToUri}}" >