OpenFileDialog предоставляет эту возможность, и он работает так же в версиях Silverlight со 2 по 4.
Вот простая функция, которая считывает байты в байтовый массив для вас.
http://msdn.microsoft.com/en-us/library/system.windows.controls.openfiledialog(VS.95).aspx
OpenFileDialog ofd = new OpenFileDialog()
{
Multiselect = false,
};
if (ofd.ShowDialog() == true)
{
FileInfo file = ofd.File;
byte[] bytes;
using (FileStream fs = file.OpenRead())
{
bytes = new byte[fs.Length];
int l = (int)fs.Length;
int r = 0;
while (l > 0)
{
int read = fs.Read(bytes, r, l);
if (read != 0)
{
r += read;
l -= read;
}
}
}
// All the bytes of the file are now in the "bytes" array
}