为什么WPF Canvas不会掉线?

时间:2011-10-14 04:14:43

标签: wpf visual-studio-2008 drag-and-drop

我在主窗口中有以下XAML:

<Window x:Class="ImageViewer.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Title="Window1" Height="398" Width="434">
   <Grid>
      <Canvas AllowDrop="True" />
   </Grid>
</Window>

但是当我尝试将文件拖到窗口时,不允许删除。当Canvas更改为ListBox时,一切都运行良好。

如何更改代码以允许删除画布?

2 个答案:

答案 0 :(得分:24)

默认情况下,Canvas没有背景,所以点击测试没有发现光标位于Canvas元素上方,而是冒泡到Grid或{{ 1}}不允许丢弃。将背景设置为Window,如下所示,它应该有效:

Transparent

答案 1 :(得分:0)

这就像一个魅力!在代码中,您可能希望执行以下操作:

Canvas myCanvas = new Canvas();

myCanvas.AllowDrop = true;
myCanvas.Background = System.Windows.Media.Brushes.Transparent;