Visual Studio 2010中的WPF项目在调试或发布时无法将控件拖放到任何位置。

12

我之前发布了一个问题:WPF从Windows资源管理器拖放文件到TreeView,但我刚刚发现这是一个与我认为的完全不同的问题。

我有一个非常简单的测试用例。

我之前使用的是TreeView,但如果我改用以下XAML所示的简单ListBox(没有代码),则出现问题:

<StackPanel Orientation="Vertical">
    <ListBox Height="312" Background="#FFBDD6FF" AllowDrop="True"/>
</StackPanel>
如果我在Expression Blend中运行项目并将一个文件拖到列表框上,我会看到下面有一个箭头和小方块的指示可以拖放。
如果我在Visual Studio中运行同一个项目并将一个文件拖到列表框上,我会看到一个带有一条线的黑圆圈
我的电脑或代码可能有什么问题导致这种情况发生?

我刚在我的电脑上准确地测试了你的代码,我在 Visual Studio 中得到了正方形。我建议你应用所有的服务包和补丁,并重新启动。 - paparazzo
1个回答

26

你是否可能以管理员身份运行Visual Studio,而Expression Blend是正常运行的?


是的。以管理员身份运行会干扰拖放操作吗? - 249076
2
是的,尝试启动notepad.exe实例并从资源管理器中拖放文件。您会看到它会打开。现在尝试使用以管理员身份启动的实例进行相同操作,它将无法打开该文件。 - Dominik
那就解释了我过去一天半的所有问题。我还在Microsoft Connect上找到了这个错误提交:http://connect.microsoft.com/VisualStudio/feedback/details/537964/drag-and-drop-to-open-file-is-not-working-at-all。我猜如果记事本有相同的行为,那么这并不是真正的错误。我想这可能是某种安全性问题? - 249076
5
不,这不是一个 bug。在您的情况下,提升权限的进程(例如 VisualStudio)与非提升权限的进程(例如 Explorer)之间被阻止直接通信。欢迎来到精彩的 UAC 世界。 - Dominik
它被称为UIPI,取第一个谷歌搜索结果。你不能使用D+D劫持提升的程序特权。这是有道理的,没有解决方法。对于用户来说也不是真正的问题。 - Hans Passant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接