Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在哪里可以找到WPF图像控件的状态?_.net_Wpf_Image_.net 3.5 - Fatal编程技术网

.net 在哪里可以找到WPF图像控件的状态?

.net 在哪里可以找到WPF图像控件的状态?,.net,wpf,image,.net-3.5,.net,Wpf,Image,.net 3.5,图像控件的一个很好的特性是,我们可以指定一个Uri作为ImageSource,然后自动为我们下载图像。这太棒了但是,该控件似乎没有指示图像加载是否正在进行的属性。 是否有属性告诉我们图像控件的状态(下载、下载等) 谢谢 嗯,这是个好问题。我查看了ImageSource类在MSDN上的文档,但上面似乎没有任何内容可以获取这些信息 也就是说,您可以手动启动下载并在下载完成后设置图像控件的源属性吗?您肯定知道下载是否已完成…在映像DP上设置OnPropertyChanged?只要您的ImageSour

图像控件的一个很好的特性是,我们可以指定一个Uri作为ImageSource,然后自动为我们下载图像。这太棒了但是,该控件似乎没有指示图像加载是否正在进行的属性。

是否有属性告诉我们图像控件的状态(下载、下载等)


谢谢

嗯,这是个好问题。我查看了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";
}