我创建了一个附加属性,用于注册拖放事件并请求操作:移动,链接,复制。
UIElement dragablecontrol = d as UIElement;
if (dragablecontrol != null)
{
dragablecontrol.AllowDrop = true;
dragablecontrol.DragEnter += Dragablecontrol_DragEnter;
dragablecontrol.DragStarting += Dragablecontrol_DragStarting;//does not get fired
dragablecontrol.DragOver += Dragablecontrol_DragOver; //e.AcceptedOperation got move, link, copy
dragablecontrol.Drop += Dragablecontrol_Drop; //e.DataView.RequestedOperation is set none
}
无论如何,不会触发起始拖动事件,并且会忽略我的RequestedOperation,因为在拖动输入中e.Data
为空。
因此(我猜)事件参数参数e.DataView.RequestedOperation
在drop事件中设置为None
。我通过var filesAndFolders = await e.DataView.GetStorageItemsAsync();
获得的文件属性设置为ReadOnly
。
我能做些什么呢。我需要重命名拖动的文件。我在GitHub创建了一个演示项目。