当前位置: 首页 > 知识库问答 >
问题:

WPF拖放DragDrope移出WPF窗口时效果会发生变化

韦安怡
2023-03-14

我有一个WPF应用程序,我在其中拖动一个文件对象。它可以放在应用程序内部的几个窗口中,也可以放在Explorer、桌面和其他一些地方。

拖放操作工作良好,但DragDropeFffect只在应用程序窗口内正确显示。当光标移动到应用程序窗口之外时,我会得到“verboten”图标--大多数情况下。根据光标离开应用程序的方式,大多数情况下,我会得到一个被划掉的圆圈。但有时它会正确地继续拖动复制图标。

var files = new[] {editor.MarkdownDocument.Filename} ;
var dragData = new DataObject(DataFormats.FileDrop,files);

DragDrop.DoDragDrop(tab, dragData, DragDropEffects.Copy);

正如前面提到的,代码和shell的处理工作正常--文件被复制了,只是拖动图标出了问题。

我可以控制应用程序内部的拖动图标,在窗口上没有问题,但我无法控制它之外发生的事情。

那么我如何在WPF外部可靠地控制拖动图标呢?

共有1个答案

东方修谨
2023-03-14

https://docs.microsoft.com/en-us/dotnet/api/system.windows.dragdrop.GiveFeedback

DragDrop.GiveFeedback += SetTheCursorHere;

您应该(根据Microsoft的文档)缓存光标等,因为在拖动时会一遍又一遍地调用光标,而您不希望在拖动时加载Resource。

 类似资料:
  • 本文向大家介绍WPF实现渐变淡入淡出的登陆窗口效果,包括了WPF实现渐变淡入淡出的登陆窗口效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WPF实现渐变淡入淡出的登陆窗口效果的方法。分享给大家供大家参考。具体实现方法如下: 1、实现原理 ① 利用UIElement.OpacityMask属性,用于改变对象区域的不透明度的画笔。可以使元素的特定区域透明或部分透明,从而实现比较新颖的效果。

  • 我使用的是WPF ListView,其中SelectionMode设置为Extended(只能按ctrl键选择多个项目)。我需要实施D 不幸的是,这样的解决方案有一个错误:选择单个项目(未按 ctrl)有效。但是,我需要双击以选择项目,同时按ctrl才能选择多个项目。使用 ListView 的 PreviewMouseDown 或 ListViewItem 的 PreviewMouseDown 时

  • 本文向大家介绍WPF弹出自定义窗口的方法,包括了WPF弹出自定义窗口的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了WPF弹出自定义窗口的方法。分享给大家供大家参考,具体如下: 测试环境: [1]VS2010SP1 [2]WPF(.NET Framework 4)项目 内容简介 WPF工程如何弹出自定义窗口 第一步:自定义个窗口 为当前项目新添个Window项,XAML部份的代码略,

  • 本文向大家介绍WPF ProgressBar实现实时进度效果,包括了WPF ProgressBar实现实时进度效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了WPF ProgressBar实现实时进度的具体代码,供大家参考,具体内容如下 简单测试,页面如图: 利用上班的一点点空闲时间,做了个wpf progressbar的例子,觉得有潜力可挖,故放上来供大家参考,有写的更好的请留

  • 本文向大家介绍PowerShell中调用WPF生成炫酷窗口实例,包括了PowerShell中调用WPF生成炫酷窗口实例的使用技巧和注意事项,需要的朋友参考一下 怎样在PowerShell中调用WPF,你知道,我也知道;怎样在PowerShell中将很长的.NET类型名称缩短成别名,你知道,我也知道。但是怎样将这两个知识点融汇贯通,写出一个优雅的DEMO,并且让你一眼就能看出,这就是WPF,不是别的

  • 本文向大家介绍WPF实现进度条实时更新效果,包括了WPF实现进度条实时更新效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了WPF实现一个实时更新的进度条,供大家参考,具体内容如下 效果图 xaml代码 后台代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。