Почему WPF Canvas не падает? - PullRequest
       0

Почему WPF Canvas не падает?

8 голосов
/ 14 октября 2011

У меня есть следующий 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 ]

24 голосов
/ 14 октября 2011

По умолчанию Canvas не имеет фона, поэтому тестирование попадания не обнаруживает, что курсор находится над элементом Canvas, а вместо этого всплывает до Grid или Window, которые не позволяют понижаться. Установите фон Transparent следующим образом, и он должен работать:

<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" Background="Transparent" />
   </Grid>
</Window>
0 голосов
/ 24 апреля 2013

Это работает как шарм! В коде вы хотели бы сделать что-то вроде:

Canvas myCanvas = new Canvas();

myCanvas.AllowDrop = true;
myCanvas.Background = System.Windows.Media.Brushes.Transparent;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...