Вы уничтожаете WebClient с помощью using до того как страница будет загружена. Поэтому и пусто.
Но если очень надо, то можно попробовать вот так:
WebClient wc = new WebClient();
wc.DownloadProgressChanged += wc_DownloadProgressChanged;
wc.DownloadDataCompleted += (s, e) => wc.Dispose();
wc.DownloadFileAsync(url, path);
Но вообще WebClient устарел, используйте HttpClient.
private static readonly HttpClient client = new HttpClient();
static async Task Main(string[] args)
{
string text = await client.GetStringAsync("https://physics.nist.gov/cuu/Constants/Table/allascii.txt");
File.WriteAllText("file.txt", text);
Console.ReadKey();
}
Вывод в файл file.txt, начальные несколько строк:
Fundamental Physical Constants --- Complete Listing
2018 CODATA adjustment
From: http://physics.nist.gov/constants
Quantity Value Uncertainty Unit
alpha particle-electron mass ratio 7294.299 541 42 0.000 000 24
alpha particle mass 6.644 657 3357 e-27 0.000 000 0020 e-27 kg
alpha particle mass energy equivalent 5.971 920 1914 e-10 0.000 000 0018 e-10 J
Вообще файл весит 40 килобайт, смысла отображать прогресс загрузки не вижу. Если же вам надо качать огромные файлы в несколько гигабайт, то докачка в случае разрыва соединения тоже бы не помешала - вот пример.