我编写了一个看板用户控件,我可以在其中将一些卡片从一列拖放到另一列(列表框/列表框项目),并且我使用了组件“ https://github.com/punker76/gong-wpf-dragdrop ”去做这个。现在我想添加一个新行为:显示一个预览阴影,卡片将被放置在附件中的动画 gif 中:

动画 gif 显示了执行此操作的 DevExpress 组件。我不想使用 DevExpress,而是想使用另一个开源组件,扩展 gong-wpf-dragdrop 或自己执行此操作。
是否有人已经这样做了或知道一个组件这样做?如果没有,有人有这样做的策略吗?
我很惊讶没有在谷歌上找到更多关于这个主题的信息。每个人都用 DevExpress 或 Telerik 做这样的事情吗?或者直到现在还没有人发布开源解决方案?
GiveFeedback我的ListView控件无法触发事件。下面的代码仅用于此测试,它正在更新事件中的文本标签,只是为了查看触发了哪些事件以及何时触发。label1拖动项目和label3项目下降时更新。但为什么label2永远不会更新?我错过了什么?
public Form1()
{
InitializeComponent();
listView1.ItemDrag += new ItemDragEventHandler(listView1_ItemDrag);
listView1.DragDrop += new DragEventHandler(listView1_DragDrop);
listView1.DragEnter += new DragEventHandler(listView1_DragEnter);
listView1.DragOver += new DragEventHandler(listView1_DragOver);
listView1.GiveFeedback += new GiveFeedbackEventHandler(listView1_GiveFeedback);
}
private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
{
DoDragDrop(e.Item, DragDropEffects.All);
}
private void listView1_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void listView1_DragOver(object sender, DragEventArgs e)
{
label1.Text = "DragOver " + DateTime.Now.ToString();
}
private void listView1_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
label2.Text = "GiveFeedback …Run Code Online (Sandbox Code Playgroud) 我试图弄清楚如何通过拖放文件或文件夹来在 OSX 上启动 Swift 应用程序,并将其视为所放资源的完整路径作为参数。
我基于 这个 拖放示例工作:
我想拖一个组。我将两个矩形放在一个组中,现在想要拖放整个组,在我的代码中拖放适用于单个矩形但不适用于组。
这是我的代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"> </script>
<title>Drag And Drop</title>
</head>
<body>
<div id="viz"></div>
<script type="text/javascript">
var vizSVG = d3.select("#viz")
.append("svg")
.attr("width", 400)
.attr("height", 300);
var group =d3.select("svg")
.append("g")
.attr("id","group1")
.attr("x",50)
.attr("y", 140)
//.attr("fill", "yellow")
// .call(d3.behavior.drag().on("drag", move));
group.append("rect")
.attr("id", "bluerect")
.attr("x", 50)
.attr("y", 140)
.attr("width", 50)
.attr("height", 50)
.attr("stroke", "red")
.attr("fill", "blue")
.attr("opacity","0.5")
.call(d3.behavior.drag().on("drag", move));
group.append("rect")
.attr("id", "redrect")
.attr("x", 110)
.attr("y", 140)
.attr("width", 50)
.attr("height", 50)
.attr("stroke", "blue")
.attr("fill", "red")
.call(d3.behavior.drag().on("drag", move));
function …Run Code Online (Sandbox Code Playgroud) 我的 Angular 2 项目的 index.html 中有这些函数:
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", "teststring");
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
console.log(data);
}
</script>
Run Code Online (Sandbox Code Playgroud)
当我将这些函数放入组件中时,会出现以下错误:
Uncaught ReferenceError: drag is not defined at HTMLImageElement.ondragstart
Uncaught ReferenceError: allowDrop is not defined at HTMLDivElement.ondragover
Run Code Online (Sandbox Code Playgroud)
使用这些函数的元素在组件 html 中:
<div> ondrop="drop(event)" ondragover="allowDrop(event)">
<img> src="smiley.png" draggable="true" ondragstart="drag(event)">
</div>
<div ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个水平 Recycler 视图,其中包含一个项目列表。每个项目都有一个文本视图和图像视图来表示项目(例如一个正方形的图像和图像上方的文本“Square”)。回收器视图位于它自己位于屏幕顶部的相对布局内。我需要做的是从回收站视图中拖出一个图像,然后将它放到它外面的另一个布局中,这个布局低于这个布局。但是,从回收器视图中拖动的图像不得删除,而应将图像的副本放置到外部布局中。图像还必须放置在布局中用户松开手指的确切位置。有没有办法实现这一目标?
这方面的一个例子可能就像在游戏中一样,其中用户有一个对象列表可以拖放到游戏世界中。
这是一个例子来说明我的意思:

Recycler View 的适配器类:
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private List<ListItems> listItems;
private Context context;
public RecyclerAdapter(List<ListItems> listItems, Context context) {
this.listItems = listItems;
this.context = context;
}
@Override
public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.layout_recycler_view_row_one, parent, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(RecyclerAdapter.ViewHolder holder, int position) {
ListItems listItems = listItems.get(position);
holder.textView.setText(listItems.getItemName());
holder.imageView.setImageResource(listItems.getImageDrawable());
}
@Override
public int getItemCount() {
return listItems.size();
}
public …Run Code Online (Sandbox Code Playgroud) 我正在寻找支持多次拖动的拖放库。但是我找不到 angular 2+ 的任何东西。ng2-dragula 支持我们想要的,除了多次拖放。任何人都可以建议任何库或如何覆盖 ng2 dragula 以实现相同的目标。以下是我们正在寻找的功能:
WKWebView在 iOS 11 和 12 上长按 a 中的图像或链接会启动拖放会话(用户可以拖动图像或链接)。我怎样才能禁用它?
我有一个接收两组数据的组件,它是一个
react-beautiful-dnd DragDropContext,如下所示
render() {
let index = -1;
const dataSetOne = this.props.store!.getdata(1);
const dataSetTwo = this.props.store!.getData(2);
const allData = this.props.anotherStore!.getAllData();
return (
<DragDropContext onDragEnd={this.onDragEnd}>
<Droppable droppableId="SIDE_MENU" direction="vertical" type="sections">
{(provided, snapshot) => (
<div
{...provided.droppableProps}
ref={provided.innerRef}
onScroll={(e) => e.currentTarget.scrollTop}
>
{dataSetOne!.map((a, i) => {
index = i;
const currentData:any= allData.filter(/*logic*/)
return (
<MyDraggableComp
key={a.id!}
aes={a}
index={index}
data={currentData}
/>
);
})}
{dataSetTwo.length > 0 ? (
<MyDraggableComp
key="SOMEKEY"
aes={null}
index={index + 1}
data={dataSetTwo}
/>
) : null}
{provided.placeholder}
</div>
)} …Run Code Online (Sandbox Code Playgroud) 现在谈论的是桌面应用程序,而不是移动设备或 Web。
是否有任何小部件Flutter允许,例如,将文件夹拖放到应用程序 UI 中,然后应用程序将读取例如该文件或文件夹的路径?
我一直在阅读有关Draggable,并DragTarget在Flutter,但我认为他们是用于这一目的。
注意:它可能不存在用于此目的的小部件,因此也将赞赏有关如何在 Flutter 中执行此操作的策略。