加载网址图像时显示默认本地图像

时间:2013-04-08 21:43:07

标签: wpf

我是一名新手。在我的wpf应用程序中,我有从网络加载的图像。为了避免gui阻塞,我按照How can I keep a WPF Image from blocking if the ImageSource references an unreachable Url?

中提到的方法进行了操作

效果很好。问题是,在图像加载之前,gui不支持在Image节点中设置的维度属性。最终结果是一种'调整大小'的影响 - 最初gui(元素)是一个大小,并且一旦加载图像就'重新调整'。

我希望让负载“平稳”。我希望能够指定“初始默认”图像。像initial image in WPF Image Control

这样的东西

然而,我无法让它发挥作用。在ImageAsyncHelper中可能类似于下面的内容(这显然是错误的):

    public static readonly DependencyProperty SourceUriProperty = DependencyProperty.RegisterAttached("SourceUri", typeof(Uri), typeof(ImageAsyncHelper), new PropertyMetadata
    {
        PropertyChangedCallback = (obj,e) =>
        {
            ((Image)obj).SetBinding(Image.SourceProperty,
                new Binding("DefaultUri")
                {
                    Source = new Uri("pack://application:,,,/blah/Images/Default.gif", UriKind.RelativeOrAbsolute)
                });

        }

        PropertyChangedCallback += (obj, e) =>
        {
            ((Image)obj).SetBinding(Image.SourceProperty,
              new Binding("VerifiedUri")
              {
                  Source = new ImageAsyncHelper { GivenUri = (Uri)e.NewValue },
                  IsAsync = true,
              });
        }
    });

我有什么选择?

1 个答案:

答案 0 :(得分:0)

尝试将图像元素MinWidth和MaxWidth设置为所需的大小。