2013-03-26 2 views
0

Я чувствую себя действительно глупым, но я не могу его вычеркнуть.System.Windows.Controls.WebBrowser Перейдите к html-файлу на диске

Это работает безупречно;

((System.Windows.Controls.WebBrowser)e.Control).Navigate(new Uri("http://www.google.com")); 

Но когда я пытаюсь перейти к файлу на диске он не

string path [email protected]"D:\dev\MySite.html"; 

((System.Windows.Controls.WebBrowser)e.Control).Navigate(new Uri(path)); 

Я думаю, я не могу использовать Uri, но что еще я должен использовать, чтобы перейти к файлу на диске?

полный код;

private void webControlAvailable(object sender, ControlAvailableEventArgs e) 
    { 

     string path [email protected]"D:\dev\MySite.html"; 

     ((System.Windows.Controls.WebBrowser)e.Control).Navigate(new Uri(path)); 

    } 

ответ

0

Использование System.Windows.Controls.WebBrowser для перехода к локальным файлам является достаточно жестким. Вы можете попробовать это, хотя:

string path [email protected]"file://127.0.0.1/D$/dev/MySite.html"; 
((System.Windows.Controls.WebBrowser)e.Control).Navigate(new Uri(path)); 

Если у вас есть JavaScript один ваш сайт может быть немного некрасиво и потерпеть неудачу.

Вы можете также использовать System.IO.Stream для навигации, с помощью WebBrwoser.NavigateToStream() см this резьбы на SO и документации official.

+0

Спасибо, что посмотрю :) – Tim

+0

это FileStream source = новый FileStream (путь к файлу, FileMode.Open, FileAccess.Read); что вы имели в виду, с помощью NavigateToStream? – Tim

+0

Да, например. Откройте 'System.IO.Stream' так, как вам нравится, или можете обрабатывать и использовать этот поток для' NavigateToStream() '-method –