图像无法显示

时间:2013-06-08 21:23:57

标签: windows-phone-8

我在让我的应用从网络上显示图片时遇到了一些问题。 它可以在我的样本数据中正常工作:

fine

但是一个应用程序在模拟上运行我得到了这个,你可以看到文本框中的链接:

bad

这是我的代码,我做错了什么?

<phone:LongListSelector.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal" Margin="12,2,0,4" Height="105" Width="432">
            <!--Replace rectangle with image-->
            <Image>
                <Image.Source>
                    <BitmapImage UriSource="{Binding Image}" CreateOptions="BackgroundCreation"/>
                </Image.Source>
            </Image>
            <StackPanel Width="311" Margin="8,-7,0,0">
                <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Margin="10,0" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize="{StaticResource PhoneFontSizeLarge}" />
                <TextBox Text="{Binding Image}" FontSize="10" />
            </StackPanel>
        </StackPanel>
    </DataTemplate>
</phone:LongListSelector.ItemTemplate>

http://i.imgur.com/GcwxIpl.png

1 个答案:

答案 0 :(得分:0)

您可以看到图片的唯一原因是您的代码无法下载。 我刚刚为Windows手机创建了一个简单的应用程序来手动下载图像(只是为了看看究竟发生了什么?)。

代码很简单:

XAML:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  <StackPanel>
     <Image>
       <Image.Source>
         <BitmapImage UriSource="{Binding Image}" CreateOptions="BackgroundCreation"/>
       </Image.Source>
     </Image>
      <Button Content="go" Click="ClickMe"/>
   </StackPanel>
</Grid>

代码-behinde:

    private void ClickMe(object sender, RoutedEventArgs e)
    {
        //var url = "http://img7.anidb.net/pics/anime/136529.jpg";
        var url = "http://img7.anidb.net/pics/anime/54893.jpg";
        HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
        //req.ContentType = "image/jpeg";
        //req.Accept = "image/jpeg";
        req.Method = "GET";
        req.BeginGetResponse(Callback, req);
    }

    private void Callback(IAsyncResult result)
    {
        try
        {
            HttpWebRequest httpReq = (HttpWebRequest)result.AsyncState;
            HttpWebResponse response = (HttpWebResponse)httpReq.EndGetResponse(result);

            Stream myStream = response.GetResponseStream();
            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                BitmapImage bmp = new BitmapImage();
                bmp.SetSource(myStream);
                var character = new Character();
                character.Image = bmp;
                ContentPanel.DataContext = character;
                //image1.Source = bmp;
            });
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

当我尝试在WP上下载图像时,我使用统计信息代码重新发送了一个webException:System.Net.HttpStatusCode.Forbidden 顺便说一句 - 当我试图使用网络浏览器获取图像时,有时我会收到此错误。不常见,但它发生了。很可能该网站不允许获取图像。