private async static void ActualImageSourceChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { DelayLoadImage instance = o as DelayLoadImage; if (instance == null) { return; } instance.imageLoaded = false; var newCacheUri = e.NewValue; if (newCacheUri == null) { return; } var cacheUri = await WebDataCache.GetLocalUriAsync(new Uri(newCacheUri.ToString(), UriKind.RelativeOrAbsolute)); instance._image.UriSource = cacheUri; VisualStateManager.GoToState(instance, STATE_DEFAULT_NAME, false); //这里引入Q42的缓存 }
//private static ImageSourceConverter converter = new ImageSourceConverter(); private static void DefaultImageSourceChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { DelayLoadImage instance = o as DelayLoadImage; if (instance?.defaultImage != null) { instance.defaultImage.Source = (ImageSource)e.NewValue; } }
private static void StretchChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) { DelayLoadImage instance = o as DelayLoadImage; if (instance != null) { if (instance.defaultImage != null) { instance.defaultImage.Stretch = (Stretch)e.NewValue; } if (instance.actualImage != null) { instance.actualImage.Stretch = (Stretch)e.NewValue; } } }