【发布时间】:2014-03-16 23:46:05
【问题描述】:
我尝试在 Google 上搜索如何在 Canvas 上拖放 UIElements,但找不到任何我想要的东西。
我有一个带有 Window 的 C# WPF 应用程序。在窗口内我有一个画布,我可以在其中添加图像。 我想要的是能够拖放图像,同时保持在画布的边界内。 我也希望它在代码中,而不是在 xaml 中。
我在将图像添加/更新到画布的函数中得到了这个。应为拖放事件替换 TODO。
Image img = ImageList[i].Image;
img.Name = "Image" + i;
// TODO: Drag and Drop event for Image
// TODO: Check if Left and Top are within Canvas (minus width / height of Image)
Canvas.SetLeft(img, Left); // Default Left when adding the image = 0
Canvas.SetTop(img, Top); // Default Top when adding the image = 0
MyCanvas.Children.Add(img);
OnPropertyChanged("MyCanvas");
PS:虽然这是为了以后,如果有人有代码可以一次拖放多个图像作为额外奖励,我将不胜感激。
提前感谢您的帮助。
【问题讨论】:
-
与其编辑您的问题,不如将您的解决方案发布为答案并接受它?它以这种方式与网站的其他部分保持一致。
标签: c# wpf canvas drag-and-drop draggable