Tenho uma tela e nela carrego uma imagem com tamanho bem grande (6750 x 4200, 5,84 MB). Ela é carregada assincronamente, após ser carregado o controle. De posse do evento DownloadProgress do objeto BitmapImage podemos mostrar o progresso do download. O DownloadProgressEventArgs nos dá a propriedade Progress, um número de 0 a 100 com o percentual de download feito.
public Page()
{
// Required to initialize variables
InitializeComponent();
var image = new BitmapImage();
image.DownloadProgress += (sender, e) =>
{
this.ProgressTextBlock.Text = e.Progress.ToString();
};
//Objeto Uri com o endereço da imagem
image.UriSource = this.ImageObsoluteUri;
this.DownloadedImage.Source = image;
}
Aproveitei e coloquei a funcionalidade de Full Screen, onde pode ser visto que todo o componente foi feito para que suas proporções e posicionamentos não se alterassem de modo que ficasse destorcido. Quem trabalha com HTML sabe os problema que existem em deixar algo bem centralizado e organizado em qualquer browser. Quem quiser dar uma conferida, aqui está o link do exemplo on-line.