111,098
社区成员




private void ellipse1_MouseMove(object sender, MouseEventArgs e)
{
DataObject data = new DataObject(System.Windows.Forms.DataFormats.FileDrop, new Test());
DragDrop.DoDragDrop(ellipse1, data, DragDropEffects.Move);
}
private void Label_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
if (!e.Data.GetDataPresent(System.Windows.Forms.DataFormats.FileDrop))
{
MessageBox.Show("没数据");
return;
}
var data = e.Data.GetData(System.Windows.Forms.DataFormats.FileDrop);
if (data != null)
{
MessageBox.Show(data.ToString());
}
else
{
MessageBox.Show("拖放数据无效");
}
}
private void Label_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = System.Windows.Forms.DragDropEffects.Move;
}
}
[Serializable]
public class Test
{
public override string ToString()
{
return "Test数据";
}
}
<Grid>
<WindowsFormsHost Height="100" HorizontalAlignment="Left" Margin="10,10,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="200" Background="Azure">
<winform:Label DragEnter="Label_DragEnter" DragDrop="Label_DragDrop" Text="Hello" AllowDrop="True"></winform:Label>
</WindowsFormsHost>
<Ellipse Height="100" Stroke="AliceBlue" StrokeThickness="50" HorizontalAlignment="Left" Margin="10,120,0,0" Name="ellipse1" VerticalAlignment="Top" Width="200" MouseMove="ellipse1_MouseMove" />
</Grid>
private void ellipse1_MouseMove(object sender, MouseEventArgs e)
{
//var o = new Test();
DataObject data = new DataObject(typeof(Test), new Test());
//data.SetData(typeof(Test), o);
DragDrop.DoDragDrop(ellipse1, data, DragDropEffects.Move);
}
private void Label_DragDrop(object sender, System.Windows.Forms.DragEventArgs e)
{
if (!e.Data.GetDataPresent(typeof(Test)))
{
MessageBox.Show("没数据");
return;
}
var data = e.Data.GetData(typeof(Test));
if (data != null)
{
MessageBox.Show(data.ToString());
}
else
{
MessageBox.Show("拖放数据无效");
}
}
private void Label_DragEnter(object sender, System.Windows.Forms.DragEventArgs e)
{
e.Effect = System.Windows.Forms.DragDropEffects.Move;
}