исходное изображение в WPF Image Control - PullRequest
3 голосов
/ 07 августа 2011

У меня есть WPF Image Control в моем проекте, который загружается из Интернета (ленивая загрузка), я хочу показать начальное изображение в Image Control до загрузки основного изображения.Пожалуйста, помогите мне

<DataTemplate DataType="{x:Type local:MyData}">
...
 <Image Width="50" Height="50" Source="{Binding Path=profile_image_url_https, FallbackValue=profile_image_url_https}"  HorizontalAlignment="Left">
...
</DataTemplate>

1 Ответ

4 голосов
/ 07 августа 2011

Возможно, вы сможете заставить его работать, используя TargetNullValue на привязке, устанавливайте свойство изображения только тогда, когда оно загружено.

, например

<BitmapImage x:Key="DefaultImage" UriSource="Images/Error.ico" />
<Image Source="{Binding TestBitmapImage,
                        TargetNullValue={StaticResource DefaultImage}}" />
private BitmapImage _TestBitmapImage = null;
public BitmapImage TestBitmapImage
{
    get { return _TestBitmapImage; }
    set
    {
        if (_TestBitmapImage != value)
        {
            _TestBitmapImage = value;
            PropertyChanged.Notify(() => this.TestBitmapImage);
        }
    }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
    var img = new BitmapImage();
    img.DownloadCompleted += (s, dcea) =>
        {
            TestBitmapImage = img;
        };
    img.BeginInit();
    img.UriSource = new Uri("http://www.gravatar.com/avatar/c35af79e54306caedad37141f13de30c?s=128&d=identicon&r=PG");
    img.EndInit();
}
...