а зачем клава? чем обычный Click(); or DoubleClick(); не устраивает?
скачивается через web client / httpclient и тд реализаций дафига
BitMapImage s = client.DownloadFile("string path");
или
var s = client.DownloadFile("string path");
Bitmapimage r = s as Bitmapimage;