.net 在哪里可以找到WPF图像控件的状态?
图像控件的一个很好的特性是,我们可以指定一个Uri作为ImageSource,然后自动为我们下载图像。这太棒了但是,该控件似乎没有指示图像加载是否正在进行的属性。 是否有属性告诉我们图像控件的状态(下载、下载等).net 在哪里可以找到WPF图像控件的状态?,.net,wpf,image,.net-3.5,.net,Wpf,Image,.net 3.5,图像控件的一个很好的特性是,我们可以指定一个Uri作为ImageSource,然后自动为我们下载图像。这太棒了但是,该控件似乎没有指示图像加载是否正在进行的属性。 是否有属性告诉我们图像控件的状态(下载、下载等) 谢谢 嗯,这是个好问题。我查看了ImageSource类在MSDN上的文档,但上面似乎没有任何内容可以获取这些信息 也就是说,您可以手动启动下载并在下载完成后设置图像控件的源属性吗?您肯定知道下载是否已完成…在映像DP上设置OnPropertyChanged?只要您的ImageSour
谢谢 嗯,这是个好问题。我查看了ImageSource类在MSDN上的文档,但上面似乎没有任何内容可以获取这些信息
也就是说,您可以手动启动下载并在下载完成后设置图像控件的源属性吗?您肯定知道下载是否已完成…在映像DP上设置OnPropertyChanged?只要您的ImageSource是BitmapImage,就可以使用BitmapImage.DownloadCompleted事件。到目前为止,我发现的唯一问题是它只能从C#开始工作,因此会失去一些灵活性。我猜您可以从XAML访问该事件,但我不确定如何访问。以下示例通过单击按钮开始加载图像,并在图像完成加载后更新标签 XAML:
希望有帮助 我无法控制下载。。。我只需设置Uri,就完成了。当然,我可以尝试重新发明轮子,下载图片,展示它们,等等。。。但我想我不想这么做…VB:
AddHandler bi.DownloadCompleted,bi_DownloadCompleted
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image x:Name="image" Grid.Row="2"/>
<Label x:Name="label" Content="aaa" Grid.Row="1" />
<Button Click="Button_Click" Content="Click to load image" Grid.Row="0" />
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.DecodePixelHeight = 100;
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.UriSource = new Uri("bigImageUri");
bi.EndInit();
bi.DownloadCompleted += new EventHandler(bi_DownloadCompleted);
image.Source = bi;
}
void bi_DownloadCompleted(object sender, EventArgs e)
{
label.Content = "dl completed";
}