【发布时间】:2016-12-22 15:26:55
【问题描述】:
在 Windows 10 上编写第一个针对 UWP 和 .NET Core 的程序,并希望添加拖放功能以包含从文件夹中拖动的图像。由于我想让用户在目标面板上按照他们的需要排列放置的图像(以及缩略图),因此我选择了 Canvas 面板,但无法进行拖放操作。将图像文件拖到面板上只会显示红色圆圈图标(无拖放)。将面板类型更改为网格,一切正常。关于如何让 Canvas 面板合作的任何线索?
xaml
<GridView Grid.Row="1" x:Name="MainPanel" AllowDrop="True" DragEnter="MainPanel_DragEnter" Drop="MainPanel_Drop" >
</GridView>
后面的代码
private void MainPanel_DragEnter(object sender, DragEventArgs e)
{
e.AcceptedOperation = DataPackageOperation.Copy;
e.DragUIOverride.Caption = "drop to add image file to collection";
e.DragUIOverride.IsCaptionVisible = true;
e.DragUIOverride.IsContentVisible = true;
}
private async void MainPanel_Drop(object sender, DragEventArgs e)
{
if (e.DataView.Contains(StandardDataFormats.StorageItems))
{
var items = await e.DataView.GetStorageItemsAsync();
// etc.
}
}
当尝试使用 Canvas 面板时,xaml 使用关键字 Canvas 代替 GridView,并且省略了 Grid.row="1"。
【问题讨论】:
-
有什么更新吗?我的回答解决了你的问题吗?
-
是的——干得好。我没有设置关于这个问题的通知,错过了你有用的回复。同时(当然)我编写了一个解决方法。谢谢
标签: c# uwp .net-core windows-10-universal