2012-10-03 340 views
1

問題: 我有wpf網頁瀏覽器控制和FTP服務器。 在代碼:Wpf網頁瀏覽器+ ftp服務器

wpfWebbrowserControll.Soure = new Uri (ftpUri) 

然後在wpfWebbrowserControll顯示的所有FTP服務器上的內容 但後來 - 當我在文件夾上單擊Windows資源管理器中打開新的窗口,文件夾的內容(它的一個問題)

我需要做的只有在我的控制下!

PS:當wpfWebbrowserControll.Soure = new Uri("C:\\") - 所有的工作一樣,我想感謝

+0

如果你解決了你的問題,你能回答你自己的問題嗎?這可能會幫助未來的其他人。 – bAN

回答

1

當web瀏覽器加載網頁的FTP它實際上你顯示它實現IShellFolderViewDual3 COM接口的COM對象,這樣的想法是攔截DefaultVerb和更新web瀏覽器源。

private void browser_LoadCompleted(object sender, NavigationEventArgs e) { 
    dynamic document = this.browser.Document; 

    document.DefaultVerbInvoked += new Func<bool>(() => { 
     this.Dispatcher.BeginInvoke(new Action(() => { 
      if ((int) document.SelectedItems.Count > 0) { 
       var selectedItem = document.SelectedItems.Item(0); 
       this.browser.Source = new Uri((string) selectedItem.Path); 
      } 
     })); 
     return false; 
    }); 
} 

<WebBrowser 
    x:Name="browser" 
    LoadCompleted="browser_LoadCompleted" 
    Source="ftp://ftp.drweb.com/pub/drweb/" />