无法在带有URI源的Silverlight中显示图像
本文关键字:Silverlight 显示 显示图 图像 源的 URI | 更新日期: 2023-09-27 17:50:42
你好,我想学习Silverlight。所以我买了Silverlight 4的动作手册。第一款"Hello World"应用就把我难住了。这是一个小应用程序,可以在twitter上搜索silverlight上的帖子,然后将它们显示在列表框中。我试图从对象绑定一个URI,以加载列表框中项目的图像。这不起作用,所以我尝试了一个静态URI。这不起作用,所以我尝试制作一个基本图像,并将XAML中的源设置为静态URI。这显示了VS2010预览窗口中的图像,但当我试图调试时仍然没有图像。所以我想可能有什么奇怪的事情阻止了silverlight访问外部uri,但我很快意识到这没有任何意义,因为它成功地从twitter获取了信息。有人知道是什么导致了这个问题吗?谢谢!
在XAML <ListBox x:Name="TweetList"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Margin="12 41 12 12">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding Image}"
Grid.Column="0"
Margin="3"
Width="50"
Height="50"
Stretch="UniformToFill"/>
<TextBlock Text="{Binding Message}"
FontSize="14"
Margin="3"
Grid.Column="1"
TextWrapping="Wrap"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
c# public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
TweetList.ItemsSource = _tweets;
}
private ObservableCollection<Tweet> _tweets =
new ObservableCollection<Tweet>();
private void GetTweets_Click(object sender, RoutedEventArgs e)
{
WebClient client = new WebClient();
client.DownloadStringCompleted += (s, ea) =>
{
XDocument doc = XDocument.Parse(ea.Result);
XNamespace ns = "http://www.w3.org/2005/Atom";
var items = from item in doc.Descendants(ns + "entry")
select new Tweet()
{
Message = item.Element(ns + "title").Value,
Image = new Uri((
from XElement xe in item.Descendants(ns + "link")
where xe.Attribute("type").Value == "image/png"
select xe.Attribute("href").Value
).First<string>()),
};
foreach (Tweet t in items)
{
_tweets.Add(t);
System.Diagnostics.Debug.WriteLine(t.Image.ToString());
}
};
client.DownloadStringAsync(new Uri("http://search.twitter.com/search.atom?q=silverlight"));
}
}
直接检查地址,如Image = new Uri("http://a0.twimg.com/profile_images/482914861/fastcompanyred100_normal.jpg")
如果成功,则可能是您试图构建的uri字符串有问题