我在让我的应用从网络上显示图片时遇到了一些问题。 它可以在我的样本数据中正常工作:
但是一个应用程序在模拟上运行我得到了这个,你可以看到文本框中的链接:
这是我的代码,我做错了什么?
<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>
答案 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
顺便说一句 - 当我试图使用网络浏览器获取图像时,有时我会收到此错误。不常见,但它发生了。很可能该网站不允许获取图像。