async void OnImageOpened(object sender, RoutedEventArgs e)
{
Messenger.Default.Send<LoadingMessage>(new LoadingMessage { Loading = false });
int yieldCount = 0;
//sanity check just in case the viewport hasnt been put into the visual tree, we need to wait until it is
while(!(viewport != null && viewport.ActualHeight > 100 && viewport.ActualWidth > 100 && _bitmap != null && _bitmap.PixelHeight != 0 && _bitmap.PixelWidth != 0))
{
if (yieldCount++ > 10)
{
return;
}
await Task.Yield();
}
var result = CoerceScaleImpl(viewport.ActualWidth, viewport.ActualHeight, _bitmap.PixelWidth, _bitmap.PixelHeight, 0.0);
_minScale = result.Item1;
_scale = result.Item2;
ResizeImage(true);
image.Source = _bitmap;
}