C# Wpf网络浏览器&x2B;ftp服务器

C# Wpf网络浏览器&x2B;ftp服务器,c#,wpf,wpf-controls,webbrowser-control,C#,Wpf,Wpf Controls,Webbrowser Control,问题: 我有wpf网络浏览器控制器和FTP服务器。 代码: 然后在wpfWebbrowserControll中显示所有FTP服务器内容 但是,当我点击一个文件夹时,windows资源管理器会打开一个包含文件夹内容的新窗口(这是一个问题) 我只需要在我的控制下做一切 Ps:whenwpfWebbrowserControll.Soure=newURI(“C:\\”)-所有的工作都像我想要的那样 感谢当WebBrowser加载ftp页面时,它实际上向您显示了实现COM接口的COM对象,因此我们的想法是

问题: 我有wpf网络浏览器控制器和FTP服务器。 代码:

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

我只需要在我的控制下做一切

Ps:when
wpfWebbrowserControll.Soure=newURI(“C:\\”)
-所有的工作都像我想要的那样
感谢

当WebBrowser加载ftp页面时,它实际上向您显示了实现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/" />
private void browser\u LoadCompleted(对象发送方,导航目标){
动态文档=this.browser.document;
document.defaultVerbCalled+=新函数(()=>{
this.Dispatcher.BeginInvoke(新操作(()=>{
如果((int)document.SelectedItems.Count>0){
var selectedItem=document.SelectedItems.Item(0);
this.browser.Source=新Uri((字符串)selectedItem.Path);
}
}));
返回false;
});
}

当WebBrowser加载ftp页面时,它实际上会向您显示实现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/" />
private void browser\u LoadCompleted(对象发送方,导航目标){
动态文档=this.browser.document;
document.defaultVerbCalled+=新函数(()=>{
this.Dispatcher.BeginInvoke(新操作(()=>{
如果((int)document.SelectedItems.Count>0){
var selectedItem=document.SelectedItems.Item(0);
this.browser.Source=新Uri((字符串)selectedItem.Path);
}
}));
返回false;
});
}

如果你解决了问题,你能回答自己的问题吗。如果你解决了自己的问题,你能回答自己的问题吗。这可能会在将来帮助其他人。