internal void ScheduleRefreshIfNeeded(Windows.Foundation.Rect drawRect, Action onImageLoaded) { _onImageLoaded = onImageLoaded; //If ImageSource or draw size has changed, refresh the Paint //TODO: should also check if Stretch has changed if (_imageSourceChanged || !drawRect.Equals(_lastDrawRect)) { if (ImageSource != null) { _refreshPaint.Disposable = CoreDispatcher.Main .RunAsync( CoreDispatcherPriority.Normal, async(ct) => await RefreshImage(ct, drawRect )); } else { _refreshPaint.Disposable = null; } _imageSourceChanged = false; _lastDrawRect = drawRect; } }
internal void ScheduleRefreshIfNeeded(Windows.Foundation.Rect drawRect, Action onImageLoaded) { _onImageLoaded = onImageLoaded; //If ImageSource or draw size has changed, refresh the Paint //TODO: should also check if Stretch has changed if (_imageSourceChanged || !drawRect.Equals(_lastDrawRect)) { _imageSourceChanged = false; if (ImageSource != null) { RefreshImageAsync(drawRect); } else { _refreshPaint.Disposable = null; } _lastDrawRect = drawRect; } }