WPF C#拖放事件
|
我有一个画布,可以在其中放置一些工具来创建图表(该图表位于tabitem2中)。
我要做的是将一个工具拖放到画布上时,该事件将一个事件吐出到文本框(位于tabitem3中)。
XAML:
<ListBox>
<ListBox.Resources>
<Style TargetType=\"{x:Type Image}\">
<Setter Property=\"Width\" Value=\"100\"/>
<Setter Property=\"Height\" Value=\"100\"/>
<EventSetter Event=\"MouseLeftButtonDown\" Handler=\"DragImage\"/>
</Style>
</ListBox.Resources>
<ListBoxItem>
<Image Source=\"toolitem1.png\"></Image>
</ListBoxItem>
</ListBox>
<Canvas x:Name=\"Canvas\" AllowDrop=\"True\" Background=\"Aqua\" Drop=\"DropImage\"/>
背后的代码:
private void DragImage(object sender, MouseButtonEventArgs e)
{
Image image = e.Source as Image;
DataObject data = new DataObject(typeof(ImageSource), image.Source);
DragDrop.DoDragDrop(image, data, DragDropEffects.Copy);
}
private void DropImage(object sender, DragEventArgs e)
{
ImageSource image = e.Data.GetData(typeof(ImageSource)) as ImageSource;
Image imageControl = new Image() { Width = image.Width, Height = image.Height, Source = image };
Canvas.SetLeft(imageControl, e.GetPosition(this.Canvas).X);
Canvas.SetTop(imageControl, e.GetPosition(this.Canvas).Y);
this.Canvas.Children.Add(imageControl);
}
更新:
添加了一些示例代码,并尝试了以下人员的建议,无济于事。看起来当我尝试在ListBoxItem对象中使用DragDrop.Drop时,它将覆盖画布的DropImage事件,因此我仍然被卡住。
没有找到相关结果
已邀请:
3 个回复
磐去裸猜饲
告耸
磨标烫徽啪