C# Wpf网络浏览器&x2B;ftp服务器
问题: 我有wpf网络浏览器控制器和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对象,因此我们的想法是
wpfWebbrowserControll
中显示所有FTP服务器内容
但是,当我点击一个文件夹时,windows资源管理器会打开一个包含文件夹内容的新窗口(这是一个问题)
我只需要在我的控制下做一切
Ps:whenwpfWebbrowserControll.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;
});
}
如果你解决了问题,你能回答自己的问题吗。如果你解决了自己的问题,你能回答自己的问题吗。这可能会在将来帮助其他人。