2

问题: 我有 wpf webbrowser controll 和 FTP 服务器。在代码中:

wpfWebbrowserControll.Soure = new Uri (ftpUri)

然后wpfWebbrowserControll显示所有 FTP 服务器内容但是然后 - 当我单击文件夹时,Windows 资源管理器会打开包含文件夹内容的新窗口(这是一个问题)

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

Ps:当wpfWebbrowserControll.Soure = new Uri("C:\\")- 所有工作都像我想要的一样谢谢

4

1 回答 1

2

当 WebBrowser 加载 ftp 页面时,它实际上向您显示了实现IShellFolderViewDual3 COM 接口的 COM 对象,因此想法是拦截 DefaultVerb 并更新 WebBrowser 源。

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/" />
于 2012-10-03T16:32:38.203 回答