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

标签 c# wpf security xaml browser

如何禁止在 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/

相关文章:

c# - 多维数组的集合等价物是什么?

php - 为 "lost email"设计登录系统

c - 缓冲区溢出漏洞实验室问题

security - 如何重置Jenkins的密码?

c# - UnmanagedMemoryStream 有什么用?

c# - 使用 c# 写入 Amazon s3 存储桶上的文件

c# - Web 服务 - SQL 连接字符串

c# - 在我需要基于 XAML 控件进行计算的情况下,使用 MVVM 与控件交互的正确设计是什么?

c# - 如何使用 Binding with Dependency Property 链接属性

WPF:设计时支持具有默认值的依赖属性