Descargar archivo con barra de progreso en Xamarin Forms

Estoy tratando de hacer una página de descarga en Xamarin Forms (PCL, por lo que WebClient no es utilizable) con una barra de progreso de descarga. He usado la siguiente información de Xamarin, pero sin éxito:

http://developer.xamarin.com/recipes/ios/network/web_requests/download_a_file/ http://developer.xamarin.com/recipes/cross-platform/networking/download_progress/

Este es mi código actual (con una barra de progreso de trabajo):

using System;
using System.Collections.Generic;

using Xamarin.Forms;
using System.Net.Http;
using System.IO;
using System.Threading.Tasks;

namespace DownloadExample
{
    public partial class DownloadPage : ContentPage
    {
        public DownloadPage ()
        {
            InitializeComponent ();

            DownloadFile("https://upload.wikimedia.org/wikipedia/commons/3/3d/LARGE_elevation.jpg");
        }

        private async Task<long> DownloadFile(string url)
        {
            long receivedBytes = 0;
            long totalBytes = 0;
            HttpClient client = new HttpClient ();

            using (var stream = await client.GetStreamAsync(url)) {
                byte[] buffer = new byte[4096];
                totalBytes = stream.Length;

                for (;;) {
                    int bytesRead = await stream.ReadAsync (buffer, 0, buffer.Length);
                    if (bytesRead == 0) {
                        await Task.Yield ();
                        break;
                    }

                    receivedBytes += bytesRead;

                    int received = unchecked((int)receivedBytes);
                    int total = unchecked((int)totalBytes);

                    double percentage = ((float) received) / total;

                    progressBar1.Progress = percentage;
                }
            }

            return receivedBytes;
        }
    }
}

Ahora, necesito guardar el archivo en mi almacenamiento local. Pero, en este ejemplo, no obtengo el contenido del archivo, por lo que no puedo escribirlo en mi almacenamiento local. ¿Qué necesito cambiar en el código para que esto sea posible?

FYI: En este ejemplo, estoy descargando una imagen, pero será una característica .pdf / .doc / .docx.

Gracias por adelantado.

BR, FG

Respuestas a la pregunta(2)

Su respuesta a la pregunta