Skip to main content
 首页 » 编程设计

c#之如何禁用 wpf webbrowser 控件上的拖放

2024年01月29日33zhengyun_ustc

如何禁止在 System.Windows.Controls.WebBrowser 上删除文件?从文档中可以看出,默认情况下应该禁用此行为,因为它是从 UIElement.AllowDrop 属性继承的。

但是默认情况下,我可以将文件拖放到 WebBrowser 控件上。除此之外,我似乎无法禁用这种所谓的非默认行为。例如,如果我在 XAML 中将属性的值显式设置为 false

<WebBrowser Name="webBrowser1" AllowDrop="False" /> 

..和/或在代码隐藏中,即

webBrowser1.AllowDrop = false; 

然后我仍然可以将文件拖放到控件上。如何禁用此行为并消除它造成的安全风险?

请您参考如下方法:

好的,经过几个小时的尝试,我想出了一个可行的解决方案。因为我使用的是标准 WPF 网络浏览器,所以我知道我还可以使用 Microsoft 为 Internet Explorer 引入的“扩展事件属性”。

我用来禁止将文件拖放到控件上的事件是 ondragover。基本上我只是在事件发生时取消它。

<body ondragover="window.event.returnValue=false;"> 

这并不是很理想 - 但这种技术的好处在于它允许设置大量其他属性,这些属性不能直接从托管代码获得。对于未暴露在托管代码中的滚动条状态,可以这样设置。

<body scroll="no">