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;
}
}