我想在我的应用程序中实现拖动滚动功能,但在路上遇到了问题。有谁能够帮助我?我有一个 ScrollViewer,里面有一个 ItemsControl,在 ItemsTemplate 中我有一个 UserControl。我想将该 UserControl 拖动到 ItemsControl 中。当我拖动到 ItemsControl 的边界时,我希望 ScrollViewer 向下滚动。
protected override void OnPreviewMouseMove(System.Windows.Input.MouseEventArgs e)
{
if (this.IsMouseCaptured)
{
// Get the new mouse position.
Point mouseDragCurrentPoint = e.GetPosition(this);
if (Math.Abs(mouseDragCurrentPoint.Y - this.ActualHeight) <= 50)
{
this._scrollStartOffset.Y += 5;
_containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
}
if (mouseDragCurrentPoint.Y <= 50)
{
this._scrollStartOffset.Y -= 5;
_containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
}
}
base.OnPreviewMouseMove(e);
}
Run Code Online (Sandbox Code Playgroud)
当我通过调用DragDrop.DoDragDrop()滚动开始拖动时不会发生。但是当我禁用拖动时,ScrollViewer 会根据鼠标位置向下滚动。也许在拖动和捕获鼠标时我没有考虑到一些事情?谢谢关注。加雷金
我想从我的应用程序拖放到系统文件夹中,这样当我放下一个项目时,它会显示为一个新文件,代表我拖动的对象。
我应该使用什么 DataFlavor?
我正在尝试制作一个使用拖放功能的程序,但是,它仅在我将某些东西拖放到表单上时才起作用,而不是在控件上。如果我尝试使用控件,我只会得到“不可用”光标。
AllowDrop 属性在属性栏中设置,我也在表单加载时设置它。我不知道为什么我仍然不能放下东西;有没有人遇到过这个问题?
当前代码:
Public Class Main
Private Sub Main_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
If e.Data.GetDataPresent("FileDrop", True) = True Then
Dim Files() As String
Dim i As Integer
Files = e.Data.GetData(DataFormats.FileDrop)
For i = 0 To Files.Length - 1
FileList.Items.Add(Files(i))
Next
End If
End Sub
Private Sub Main_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
End Sub
Private Sub Main_Load(ByVal sender As Object, ByVal e …Run Code Online (Sandbox Code Playgroud) 我想知道如何进行拖放图像上传。我不明白的是如何让服务器知道用户何时将图像放入某个 div 或上传到正文?是否支持所有常见的浏览器,即,ff,chrome,safari。谢谢你 :)
我有以下工作代码(另请参阅此小提琴):
<!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {width:350px;height:170px;padding:10px;border:1px solid #aaaaaa;}
#drag1 {width:50px;height:50px;padding:10px;border:1px solid #000;background-color: #f00; position: absolute;}
</style>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text/html", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text/html");
ev.target.appendChild(document.getElementById(data));
//window.alert( ev.clientX + ',' + ev.clientY);
document.getElementById("drag1").style.left = ev.clientX + 'px';
document.getElementById("drag1").style.top = ev.clientY + 'px';
return false;
Run Code Online (Sandbox Code Playgroud)
}
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
<div id="drag1" draggable="true" ondragstart="drag(event)"></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在这里,您只能将彩色 div 拖放到主 div 内。问题是这个红色 div 从他放下的位置跳了一点。我认为这是因为我使用鼠标 ev.clientX 和 …
我已经使用 Caliburn.Micro (2.0.1) 创建和桌面应用程序,现在我需要添加一个拖放行为,用户将从 Windows 资源管理器中拖动一个文件,我需要获取它的路径,但是我正在搜索2 天了,我没有找到任何关于如何为 Caliburn.Micro 添加拖放行为的示例或解释。我发现了一个关于它的问题(使用 Caliburn Micro Framework 将文件拖放到 WPF 中),但这并没有锻炼。我尝试了很多不同的方法,但现在成功了,我的列表尝试是这样的:
<TextBox Name="Relatorio"
Width="612" Margin="1"
AllowDrop="True"
cal:Message.Attach="[Event Drop] = [Action DropQ($eventArgs)];
[Event DragOver] = [Action DragQ($eventArgs)]">
Run Code Online (Sandbox Code Playgroud)
有什么建议吗?
我一整天都在搜索,但没有找到任何东西。所有的 React 库似乎都只在一个独立列表之间排序。
我发现最接近的是这篇文章:http : //rafaelquintanilha.com/sortable-targets-with-react-dnd/
用这个例子:http : //rafaelquintanilha.com/apps/sortabletargets/
问题是您必须先将项目拖到不同的列表中,然后才能对其进行排序。换句话说,您不能将项目从一个列表拖到另一个列表,也不能将该项目准确地放置在该列表中您将其拖到的位置。
有没有你们知道或知道我可以完成此任务的任何类型的库?
我迫切需要在工作项目中使用此功能。感谢您的任何帮助
我正在尝试将 iOS 11 的拖放功能集成到 Xcode 9 beta 的应用程序中。我对创建一个标准日历应用程序可以理解的 NSItemProvider 很感兴趣。我的拖动从 UITableView 开始,因此只实现了一个 dragDelegate 方法。
到目前为止,我已经尝试了以下方法:
let text = "Rendez-vous at \(clientName)"
let data = text.data(using: .utf8)
let itemProvider = NSItemProvider()
itemProvider.registerDataRepresentation(forTypeIdentifier: kUTTypeCalendarEvent as String, visibility: .all) { completion in
completion(data, nil)
return nil
}
let dragItem = UIDragItem(itemProvider: itemProvider)
Run Code Online (Sandbox Code Playgroud)
并且还尝试使用类型标识符 kUTTypePlainText。不走运,日历应用程序不会注册下降。
我找不到任何关于此的官方文档。我希望日历应用程序正在寻找一些标准日历数据,这不仅限于标准应用程序相互通信。例如,您可以将笔记应用程序中的文本拖放到日历中以创建事件。
有谁知道我可以尝试什么?
提前致谢。
这个问题不是关于如何通过将文件拖放到exe上然后作为参数访问文件路径来打开控制台应用程序.
相反,这是用于处理文件在已打开的控制台窗口上的拖放.如果您在等待输入时已经完成此操作Console.ReadLine(),您将知道它会将拖放/删除的文件路径输入控制台窗口,以便您可以访问它.问题是它想要用双引号包装路径,这会导致IO命名空间中的许多方法出现问题.
如果我可以创建一个处理程序来在它写入之前拦截路径,我可以在返回字符串之前清除单个位置的引号.有什么办法吗?
我有许多Draggables和DragTargets。在Draggable上,我指定了child和feedback,但是我也希望它更改当Draggable进入DragTarget时的外观。我看不到任何办法。
每当我拖动Draggable时,我都会将其颜色更改为红色,但是,一旦它进入DragTarget,我就想将Draggable颜色更新为绿色。
我知道DragTarget.OnWillAccept,只要Draggable进入DragTarget就会调用此方法,但是我只有data。我尝试用新颜色更新数据,然后调用setState,但这似乎不起作用。
关于如何获得这种行为的任何建议?
我想要类似以下回调Draggable.onEnteringDragTarget和的内容Draggable.onLeavingDragTarget。