天道酬勤,学无止境

drag-and-drop

WPF drag drop none effect not triggering

问题 所以我几乎遵循了我能找到的关于如何将 WPF 控件上的拖放效果设置为 None 以显示带有线条符号的圆圈的每个示例,但无济于事。 这是我从各种示例中复制的代码,对其进行修改以使其工作: 这是窗口背后的代码: using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace TreeViewWithCheckBoxes { public partial class Window1 : Window { public Window1() { InitializeComponent(); FooViewModel root = this.tree.Items[0] as FooViewModel; base.CommandBindings.Add( new CommandBinding( ApplicationCommands.Undo, (sender, e) => // Execute { e.Handled = true; root.IsChecked = false; this.tree.Focus(); }, (sender, e) => // CanExecute { e.Handled = true; e.CanExecute

2022-05-17 02:54:17    分类:技术分享    wpf   drag-and-drop

Trying to implement Drag and Drop gmail attachment from chrome

问题 我一直在尝试将 gmail 附件从 chrome 拖放到我的应用程序中。 可以将文件从电子邮件拖到桌面并在那里创建附件,所以我知道这一定是可能的。 我已经能够让它读取文件名,但是当我从数据对象中读取 FileContents 时,我会得到一个带有文件链接的 Internet 快捷方式。 有没有人以前做过这个工作? 目前的代码被硬编码为 .txt 文件 示例项目可以从以下位置下载: https://www.dropbox.com/s/jz4zde0mvgxzn1g/DragDropTest.zip?dl=0 我的主要 DataObjectWrapper 类如下: 字符太多,无法全部发布,但主要方法是: public object GetDataNative(string format, bool autoConvert) { switch (format) { case CFSTR_FILEDESCRIPTOR_A: IntPtr fileGroupDescriptorAPointer = IntPtr.Zero; try { //use the underlying IDataObject to get the FileGroupDescriptor as a MemoryStream MemoryStream fileGroupDescriptorStream =

2022-05-15 20:25:09    分类:技术分享    c#   winforms   shell   google-chrome   drag-and-drop

Moving ListBoxItem Up/Down in WPF

问题 我创建了一个包含文件名的列表框。 我想给用户一个选项来使用向上/向下按钮和使用拖放来向上和向下移动文件名。 任何人都知道如何实现此功能。 XAML 代码: <ListBox Grid.Column="0" Name="listBox1" AllowDrop="True" Drop="listBox1_Drop" /> <StackPanel Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center"> <Button Name="moveUp" Content="Ç" FontFamily="Wingdings 3" Margin="3,3,3,3" Click="moveUp_Click" /> <Button Name="moveDown" FontFamily="Wingdings 3" Content="È" Margin="3,3,3,3" /> </StackPanel> 回答1 如果您不想实现比上移和下移复杂的东西,可以这样处理。 如果源看起来像这样 public ObservableCollection<FileClass> FileNames { get; set; } private void moveUp_Click(object sender

2022-05-15 09:08:09    分类:技术分享    wpf   drag-and-drop   listbox

NSTableView in NSScrollView doesn't autoscroll when dragging

问题 我目前正在我的 OS X 应用程序的表格视图中实现拖放重新排列。 虽然正常滚动工作正常,但拖动时自动滚动完全损坏。 如果我抓住一个单元格并开始拖动,自动滚动只会告诉表格滚动到顶部。 如果我在拖动过程中使用触控板手动滚动,表格会不断弹出到顶部。 如果我拖动顶部单元格之一,则在靠近底部拖动时表格不会自动向下滚动。 我继承了 NSScrollView 并覆盖了scrollClipView方法。 我看到它被一些内部自动滚动方法调用,坐标为 (0, 0)。 由于我看不到该内部方法在做什么,而且 Goggle 和 SO 什么也没有出现,所以我有点卡住了。 有没有人遇到过这个问题? 根据过去的经验,我觉得它与 AutoLayout 相关,但我不知道是什么。 或者,这可能是完全不相关的事情。 关于如何进一步排除故障的任何想法? 回答1 我遇到了同样的问题。 就我而言,问题是我在 Interface Builder 中将NSTableCellView的高度设置为 10,000,这样就不会为实际行下方的空行显示水平分隔符。 但是,在运行时加载的NSTableCellViews的实际高度是 43px。 因此,当我开始拖动单元格重新排序时, NSScrollView尝试一次滚动 10,000 个像素,而不是一次滚动 43 个像素。 这似乎是一个错误

2022-05-14 16:59:09    分类:技术分享    cocoa   drag-and-drop   nstableview   nsscrollview

DragEventListener not working on Samsung S7 (6.0)

问题 我正在寻找一个方向。 我有一个纸牌融合游戏(五王),已经上线了大约 6 个月; 我的最新版本 0.9.22 自 3 月以来一直稳定。 然而,最近我收到了用户无法将丢弃物拖到丢弃物堆的报告,常见的线程似乎是带有 Android 6.0 的三星 S7。 当您从手上拖出一张卡片时,您可以拖拽的地方会变成透明的,当您拖过它们时,它们会恢复正常(alpha=1)。 您可以拖动的其他地方似乎工作正常,但丢弃堆没有变暗或变亮,这让我认为拖动事件侦听器不起作用。 这是DiscardPileDragEventListener : class DiscardPileDragEventListener implements View.OnDragListener { // This is the method that the system calls when it dispatches a drag event to the // listener. @Override public boolean onDrag(final View v, final DragEvent event) { //that we are not ready to accept the drag if not at the right point of the play CardView cv =

2022-05-14 12:30:05    分类:技术分享    android   drag-and-drop   android-6.0-marshmallow   samsung-mobile

Not able to drag and drop element to another element using Selenium-Webdriver

问题 我正在为以下拖放功能编写演示测试。[参考附件截图]为此,我编写了以下代码: @Test public void DragAndDropTest() { commonSteps(); WebElement drag = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[1]/div/div[1]")); WebElement drop = driver.findElement(By.xpath("html/body/div[1]/div[3]/div[2]/div[1]/div[4]/div[3]/div[1]/div[2]/div/div[1]")); Actions builder = new Actions(driver); Action dragAndDrop = builder.clickAndHold(drag).moveToElement(drop).release(drop).build(); dragAndDrop.perform(); } Webelement 拖动用于“立即”,WebElement 拖放用于“快速按下”。 我的代码能够找到这些元素,但不会将“立即”框架拖放到“快速按下”框架。 我也尝试单击拖动

2022-05-14 10:26:04    分类:技术分享    selenium-webdriver   drag-and-drop

Draggable object goes outside the container when the window is resized

问题 我尝试使用 JQueryUI 中的拖放/可拖动功能制作自定义滚动条 我做了这个 JSFiddle: http://jsfiddle.net/96k2ysbf/1/ HTML <div id="scrollbar-zone" class="w85pc"> <div id="scrollbar" style=""></div> </div> CSS .w85pc{ width: 80%; margin: 0 auto; } #scrollbar-zone{ border: 1px solid black; height: 30px; } #scrollbar{ border: 1px solid red; height: 100%; width: 10px; } Javascript $("#scrollbar").draggable({ axis: "x", containment: 'parent' }); 它工作正常,但有时当我调整窗口大小时,可拖动对象超出父元素,我想避免这种情况。 解决此问题的最简单方法是什么? 我可以使用resize()事件,但可能有更好的解决方案。 回答1 您可以在停止事件时将位置转换为百分比,因此在调整滚动条大小时将保持其比例位置。 像这样: $("#scrollbar").draggable({ axis: "x", containment:

2022-05-14 03:59:03    分类:技术分享    javascript   jquery   jquery-ui   drag-and-drop   draggable

why if statement with e.preventDefault ? - drag and drop javascript

问题 我正在按照这个例子制作一个 javascript html5 DnD(拖放):http://www.html5rocks.com/en/tutorials/dnd/basics/ 为了防止某些浏览器的默认行为,默认事件被阻止。 我理解需要。 但是为什么还有一个 if 语句呢? function handleDragOver(e) { if (e.preventDefault) { e.preventDefault(); // Necessary. Allows us to drop. } // 为什么是这个 if 语句?,对我来说,这似乎是双重的:如果它已经存在(如果为真),那么再做一次......? 感谢任何有时间向 JavaScript 新手解释这一点的人。 谢谢! 回答1 第一次调用实际上并不是调用函数,而只是检查它是否已定义。 该代码基本上是在询问“是否定义了e.preventDefault()方法?” 如果是,则执行它: // Is preventDefault() currently defined? if (e.preventDefault) { // Then do it. e.preventDefault(); } 可能的推理 存在这种情况的可能原因是,直到 IE9 才在 Internet Explorer 中添加对 event.preventDefault

2022-05-13 17:18:11    分类:技术分享    javascript   drag-and-drop   preventdefault

Register for global file drag events in Cocoa

问题 我试图在 OS X 用户拖动 OS X 中的任何文件时收到通知,而不仅仅是在我的应用程序中。 我目前的方法是在NSEvent上使用addGlobalMonitorForEventsMatchingMask:handler: ,如下所示: [NSEvent addGlobalMonitorForEventsMatchingMask:NSLeftMouseDraggedMask handler:^(NSEvent* event) { NSPasteboard* pb = [NSPasteboard pasteboardWithName:NSDragPboard]; NSLog(@"%@", [pb propertyListForType:NSFilenamesPboardType]); }]; 这部分工作 - 当我开始从桌面或 Finder 拖动文件时调用处理程序,但是当我执行包含鼠标左键拖动的所有其他操作(例如移动窗口)时也会调用它。 问题是NSDragPboard似乎仍然包含最新的拖动文件 URL,例如当我放开文件并开始移动窗口时,这使得很难区分这些操作。 TL;DR - 我对系统范围内的文件拖动操作感兴趣。 我不需要任何关于被拖动文件本身的信息,只需要文件拖动操作已经开始或停止的信息。 对于这个问题的可能解决方案,我将不胜感激。 回答1 在与 Apple DTS 交谈后

2022-05-13 13:42:04    分类:技术分享    macos   cocoa   drag-and-drop   macos-carbon   nsevent

JavaFX8 startFullDrag() not effective

问题 我想通过拖放连接两个圆圈。 Pane p = new Pane(); Circle c1 = new Circle(5); c1.relocate(10,10); c1.addEventFilter(MouseEvent.DRAG_DETECTED, e -> { c1.startFullDrag(); System.out.println("started"); }); Circle c2 = new Circle(5); c2.relocate(40,40); c2.addEventFilter(DragEvent.ANY, e -> System.out.println("any") ); c2.addEventFilter(DragEvent.DRAG_ENTERED, e -> System.out.println("entered") ); p.getChildren().addAll(c1, c2); 这就是我尝试过的。 当从左圆c1拖放到右圆c2时, DRAG_DETECTED事件将起作用。 但不会触发DragEvent.ANY或DragEvent.DRAG_ENTERED 。 我还尝试在DRAG_DETECTED中使用鼠标事件,但这也没有改变任何东西。 我也尝试使用setOnDragEntered(EventHandler)和addEventHandler

2022-05-13 08:59:12    分类:技术分享    java   javafx   drag-and-drop