如何禁止在 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">
关于c# - 如何禁用 wpf webbrowser 控件上的拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3266045/