C# 使控件透明,以便在拖放过程中拖动事件

C# 使控件透明,以便在拖放过程中拖动事件,c#,.net,wpf,drag-and-drop,C#,.net,Wpf,Drag And Drop,我有一个列表视图,作为拖放操作的拖放目标。当列表为空时,我会在其上方放置一个TextBlock,并显示一条消息,通知用户可以将内容拖到那里(两个控件都包含在一个网格单元格中,以启用重叠)。但是由于TextBlock位于ListView的顶部,因此它会拦截与拖放相关的各种事件,并防止将内容拖放到消息文本本身上 我真的不想将拖放处理程序添加到TextBlock——有没有办法让拖放操作变得“透明” 写这篇文章时,我突然想到了一件事,那就是将文本按Z顺序放在列表下面,然后给列表一个透明的背景。但这真的是

我有一个
列表视图
,作为拖放操作的拖放目标。当列表为空时,我会在其上方放置一个
TextBlock
,并显示一条消息,通知用户可以将内容拖到那里(两个控件都包含在一个
网格
单元格中,以启用重叠)。但是由于
TextBlock
位于
ListView
的顶部,因此它会拦截与拖放相关的各种事件,并防止将内容拖放到消息文本本身上

我真的不想将拖放处理程序添加到
TextBlock
——有没有办法让拖放操作变得“透明”


写这篇文章时,我突然想到了一件事,那就是将文本按Z顺序放在列表下面,然后给列表一个透明的背景。但这真的是实现这一目标的正确途径吗?理想情况下,有一种方法可以为文本提供一个
ZIndex
进行渲染,另一个用于命中测试。

对于
TextBlock

设置为
False
,只需使用ListView的PreviewDragEnter/Drop事件处理程序,它就可以在TextBlock之前得到通知。@HansPassant问题的根源是当光标移动到文本上时ListView会得到PreviewDragLeave,我使用的拖放框架通过将拖放效果设置为“无”,告诉Windows不允许拖放。我有框架的源代码,因此可以更改此行为,但我不希望.Works。我知道必须有一些简单的事情。