是否可以使用 JavaScript 在 WebBrowser 中拖动 WPF 元素和句柄拖放

Is it possible to drag a WPF element & handle drop in a WebBrowser with JavaScript?

本文关键字:元素 WPF 句柄 拖放 拖动 可以使 JavaScript WebBrowser 是否      更新时间:2023-09-26

我有一个WPF应用程序,其Web浏览器显示一个标准网站。我能够使用此处描述的方法调用 javascript 函数。

到目前为止,我可以将不同类型的 WPF 控件拖到 WebBrowser 中,drop 事件在 JavaScript 中处理。这就是我卡住的地方。

处理 drop 事件时,我似乎找不到我正在拖动的控件/对象的位置。是否可以在拖放过程中将 C# 对象转换为基于 Web 的对象?

此外,我尝试在 WPF 中处理 drop,然后在 WebBrowser 中调用一个函数,但没有找到一种在不捕获单击事件的情况下处理 drop 的方法,我不想这样做。

任何帮助将不胜感激。谢谢!

一种解决方案可能是在拖动信息中放置一个字符串令牌,然后在 JavaScript 中检索此令牌,然后从 c# 调用函数以获取更多信息或执行响应 drop 事件需要执行的操作。启动拖动事件事件中的 C# 代码

   DataObject dataObject= new DataObject();
   dataObject.SetText("__myAppDragFlag__stringToken");
   DragDrop.DoDragDrop(this, dataObject, DragDropEffects.Copy);

JavaScript drop handler

onDrop = function (eArg) {
var dropInfo=eArg.dataTransfer.getData("text");
//if dropInfo starts with '__myAppDragFlag__' this drop coming from your c# application then your token //is stringToken
//
}