我有一个关于拖放的问题,并希望你们中的一个已经解决了它.我有一个在线网络应用程序,我可以在一个DIV上的图像上拖放注释(箭头,星星).
这里有一些事要知道.1)图像可以是任何尺寸(有时大有时小)2)包装的DIV可以左对齐或居中3)包装的DIV可以固定或自动
那么是否有任何可能的解决方案使它注释的位置总是相对于图像的左上角?所以
我正在使用jQuery.一旦我丢弃对象,我将如何获得注释的位置始终相对于图像的左上角?
谢谢!
我想知道是否可以在自定义MKMapView中创建一个MKPinAnnotation,它可以像地图应用程序中的"Drop Pin"注释一样回答触摸和拖动.
我想要一种方法将引脚放在GPS给定的位置.然后,如果GPS有点太不准确,请让用户通过触摸Pin并向右拖动来微调确切的位置.
如果使用允许的SDK无法做到这一点,我们非常感谢您提供帮助.
在我正在进行的最新项目中,我需要能够从列表中拖动div元素并将其放入文本框中.该项目本身具有强大的消息传递组件,我希望具有从联系人列表中拖动联系人的功能,并将它们放在包含一个或多个收件人的"收件人"文本框中,以逗号分隔.
我已经想到了从这里拖放,但我不能为我的生活找到一种方法来通过将div项目放到它上来填充文本框.
我很感激你的帮助.
我创建了一个包含文件名的列表框.我想给用户一个选项,使用向上/向下按钮并使用拖放来上下移动文件名.
任何人都知道如何实现此功能.
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>
Run Code Online (Sandbox Code Playgroud) 这是一个愚蠢的问题......我正试图将一个图片框拖放到一个面板上.我遵循了一些例子,但它不起作用.从不引发面板的DragDrop事件.我在网站上搜索了一个解决方案并发现了一年多的两个主题,但他们的解决方案没有用.我创建了一个新项目,只有这个代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
pictureBox1.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
panel1.DragDrop +=new DragEventHandler(panel1_DragDrop);
panel1.DragOver +=new DragEventHandler(panel1_DragOver);
}
private void panel1_DragOver(object sender, DragEventArgs e)
{
Console.WriteLine("DragOver");
}
private void panel1_DragDrop(object sender, DragEventArgs e)
{
Console.WriteLine("DragDrop");
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
Console.WriteLine("Mouse");
pictureBox1.DoDragDrop(pictureBox1.Text, DragDropEffects.All);
}
}
Run Code Online (Sandbox Code Playgroud)
我还将面板的AllowDrop和窗体设置为true.DragOver和MouseDown被引发.此外,当我拖动图片框时,光标变成一个禁止的圆圈,就像是一个不允许的操作.有没有办法让光标成为图片框中的图像?我不希望图片框移动,只是为了向面板添加项目.
嗨我用过jquery tablednd.我编写了一个函数,它将tablednd初始化为一个表
但我想知道是否有任何禁用tablednd的选项......?
我想从我的tableview中拖出一行并将其放入Mac OS X 10.6中的任何其他NSTextField中,并删除一串文本.
拖放已经在我的应用程序中工作(在NSTableView和NSBrowser之间),但我没有成功将任何数据放在粘贴板上,除了源应用程序之外的应用程序可以接受.
这是我尝试过的代码,当我进入其他一些NSTextField时,我认为这样就足以让"hello"这个词被"粘贴"了:
-(BOOL) tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
[pboard setString:@"hello" forType:NSStringPboardType];
return YES;
Run Code Online (Sandbox Code Playgroud)
}
// -
我从来没有得到光标,告诉我下降将被接受,它只是不起作用.
以上都没有奏效.我认为我的概念是正确的:"编码数据,告诉粘贴板你有什么,然后给它数据",但由于其他应用程序无法识别它,我怀疑我没有告诉粘贴板正确的数据类型.
我哪里错了?
谢谢,伍迪
我有一个usercontrol,我想实现一个拖放界面,这是实现的重要部分,这工作正常:
要使用户控件的XML文件可拖动:
<UserControl
...default xmlns...
MouseLeftButtonDown="Control_MouseLeftButtonDown">
...GUI-ELEMENTS in the control...
</UserControl>
Run Code Online (Sandbox Code Playgroud)
代码背后:
public partial class DragableControl : UserControl
{
private void Control_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragDrop.DoDragDrop(this, this, DragDropEffects.Move);
}
}
Run Code Online (Sandbox Code Playgroud)
XML文件到usercontrol,它将能够接受拖放操作:
<Usercontrol
...default xmlns...>
<Grid AllowDrop="True" Drop="Grid_Drop">
... GUI elements in the grid....
</Grid>
</Usercontrol>
Run Code Online (Sandbox Code Playgroud)
代码背后:
public partial class DropClass: UserControl
{
private void Grid_Drop(object sender, DragEventArgs e)
{
var control = (DragableControl)e.Data.GetData(typeof(DragableControl));
if(control != null)
{
//do something
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了能够创建具有拖放功能的不同用户控件,我创建了一个基类BaseDragableUserControl,它目前不包含任何东西,但是继承自usercontrol.
码:
public class BaseDragableUserControl: UserControl
{ …Run Code Online (Sandbox Code Playgroud) 我有一个可以拖动我的表单的UserControl.当控件被意外拖离我的表单并进入桌面时,我得到了第一次机会异常(作为示例):
A first chance exception of type 'System.Runtime.InteropServices.COMException' occurred in System.Windows.Forms.dll
Additional information: Invalid FORMATETC structure (Exception from HRESULT: 0x80040064 (DV_E_FORMATETC))
Run Code Online (Sandbox Code Playgroud)
当我开始拖放过程时,我传入一个Control类型的对象.它不是Serializable,也不是我想要的.有没有办法可以解决这个问题,还是有办法在主机窗体外拖动一个对象?
调用堆栈:
> System.Windows.Forms.dll!System.Windows.Forms.DataObject.GetDataIntoOleStructs(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatetc, ref System.Runtime.InteropServices.ComTypes.STGMEDIUM medium) + 0x175 bytes
System.Windows.Forms.dll!System.Windows.Forms.DataObject.System.Runtime.InteropServices.ComTypes.IDataObject.GetDataHere(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatetc, ref System.Runtime.InteropServices.ComTypes.STGMEDIUM medium) + 0x70 bytes
System.Windows.Forms.dll!System.Windows.Forms.DataObject.System.Runtime.InteropServices.ComTypes.IDataObject.GetData(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatetc, out System.Runtime.InteropServices.ComTypes.STGMEDIUM medium) + 0x152 bytes
[Native to Managed Transition]
Run Code Online (Sandbox Code Playgroud)
这是另一个堆栈,但VS2010挂起,所以我无法复制和粘贴它. 
drag-and-drop ×10
jquery ×3
wpf ×2
c# ×1
c#-4.0 ×1
clipboard ×1
cocoa ×1
exception ×1
iphone ×1
jquery-ui ×1
listbox ×1
mit-scratch ×1
mkannotation ×1
mkmapview ×1
pasteboard ×1
position ×1
raiseevent ×1
textbox ×1
winforms ×1