Изображение не видно в ленте RSS - PullRequest
0 голосов
/ 19 февраля 2012

Я занимаюсь разработкой приложения для Windows Phone, в котором указана ссылка 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;

как мне получить изображения в моем приложении?1008 * Thanx

1 Ответ

1 голос
/ 19 февраля 2012

Вы не можете напрямую сделать img = image, так как это шаблон для каждого элемента списка, а не определенное изображение на экране. Попробуйте использовать конвертер для преобразования 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;
        }
    }

Редактировать: Подробнее:

  1. Создайте конвертер UrlToUriConverter, как указано выше.

  2. Вставьте этот конвертер в ресурсы вашей страницы:

    <phone:PhoneApplicationPage.Resources>
        <src:UrlToUriConverter x:Key="UrlToUri"/> </phone:PhoneApplicationPage.Resources>
    

src - это пространство имен конвертера, и оно должно быть добавлено в теге <phone:PhoneApplicationPage, например. xmlns:src="clr-namespace:TestProject"

  1. Используйте этот конвертер в привязке Image.Source:

            <Image Source="{Binding LineOne, Converter={StaticResource UrlToUri}}" >
    
...