我是wpf新手。在我的 wpf 应用程序中,我有从网络加载的图像。为避免 gui 阻塞,我按照 如何在 ImageSource 引用无法访问的 Url 时如何防止 WPF 图像阻塞?
效果很好。问题是,在图像加载之前,gui 不支持在 Image 节点中设置的尺寸属性。最终结果是一种“调整大小”的影响——最初,gui(元素)是一种大小,一旦加载图像,就会“重新调整”。
我希望使负载“顺利”。我希望能够指定“初始默认”图像。类似于WPF 图像控件中的初始图像
但是我无法让它工作。在 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,
});
}
});
我有哪些选择?