标签: drag-and-drop

WPF 在列表框中拖放,并带有将放置位置的预览阴影

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

动画 gif 显示了执行此操作的 DevExpress 组件。我不想使用 DevExpress,而是想使用另一个开源组件,扩展 gong-wpf-dragdrop 或自己执行此操作。

是否有人已经这样做了或知道一个组件这样做?如果没有,有人有这样做的策略吗?

  • 我已经尝试过装饰器,但是装饰器位于另一层中,并且没有在列表框中显示(也许我做错了什么)
  • 我现在正在尝试的下一件事是向列表框添加一些临时虚拟元素,但要使其工作似乎相当复杂并且需要大量代码(也许我使这件事过于复杂)
  • 有人对策略或组件或元素有更好的想法来使其像动画 gif 中一样工作吗?

我很惊讶没有在谷歌上找到更多关于这个主题的信息。每个人都用 DevExpress 或 Telerik 做这样的事情吗?或者直到现在还没有人发布开源解决方案?

c# wpf drag-and-drop listbox listboxitem

3
推荐指数
1
解决办法
3117
查看次数

GiveFeedback 事件未触发

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)

c# events drag-and-drop winforms

3
推荐指数
1
解决办法
1480
查看次数

通过拖放文件或文件夹来启动 Swift OSX 应用程序

我试图弄清楚如何通过拖放文件或文件夹来在 OSX 上启动 Swift 应用程序,并将其视为所放资源的完整路径作为参数。

macos drag-and-drop swift

3
推荐指数
1
解决办法
1456
查看次数

如何在d3.js的svg中拖放一组矩形?

我基于 这个 拖放示例工作:

我想拖一个组。我将两个矩形放在一个组中,现在想要拖放整个组,在我的代码中拖放适用于单个矩形但不适用于组。

这是我的代码:

   <!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)

javascript jquery svg drag-and-drop d3.js

3
推荐指数
1
解决办法
1720
查看次数

Angular 2 拖放

我的 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)

dom drag-and-drop angular

3
推荐指数
1
解决办法
2510
查看次数

如何从 Recycler 视图中拖放图像并将其置于其他布局中

我有一个水平 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)

android drag-and-drop imageview android-recyclerview

3
推荐指数
1
解决办法
2782
查看次数

Angular 多重拖放 (ng2-dragula)

我正在寻找支持多次拖动的拖放库。但是我找不到 angular 2+ 的任何东西。ng2-dragula 支持我们想要的,除了多次拖放。任何人都可以建议任何库或如何覆盖 ng2 dragula 以实现相同的目标。以下是我们正在寻找的功能:

  1. 拖动到目标容器中的特定位置
  2. 拖动多个项目
  3. 在同一个容器内拖动
  4. 适用于任何类型的元素
  5. 支持复制和移动到目标

drag-and-drop draggable angular

3
推荐指数
1
解决办法
2559
查看次数

如何在 WKWebView 中禁用 iOS 11 和 iOS 12 拖放?

WKWebView在 iOS 11 和 12 上长按 a 中的图像或链接会启动拖放会话(用户可以拖动图像或链接)。我怎样才能禁用它?

drag-and-drop ios wkwebview ios11

3
推荐指数
1
解决办法
2343
查看次数

react-beautiful-dnd:在 Draggable 中找不到拖动手柄元素

我有一个接收两组数据的组件,它是一个 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)

drag-and-drop reactjs react-tsx react-beautiful-dnd

3
推荐指数
1
解决办法
8520
查看次数

Flutter 在桌面应用程序中的 UI 内拖放

现在谈论的是桌面应用程序,而不是移动设备或 Web。

是否有任何小部件Flutter允许,例如,将文件夹拖放到应用程序 UI 中,然后应用程序将读取例如该文件或文件夹的路径?

我一直在阅读有关Draggable,并DragTargetFlutter,但我认为他们是用于这一目的。

注意:它可能不存在用于此目的的小部件,因此也将赞赏有关如何在 Flutter 中执行此操作的策略。

drag-and-drop desktop-application flutter

3
推荐指数
1
解决办法
1877
查看次数