2011-10-14 21 views
6

Ben ana pencere için aşağıdaki XAML vardır:Neden WPF Canvas alow damla vermiyor?

<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> 

Ama pencereye bir dosyayı sürükleyip çalıştığınızda, damla izin verilmez. Tuval, ListBox'a değiştirildiğinde, her şey mükemmel çalışır.

nasıl kod damla tuvale izin değiştirilebilir

? Varsayılan olarak

cevap

22

, Canvas böylece yakalama testi imleç Canvas elemanı üzerinde olduğunu cevap vermiyor hiç bir geçmişe sahiptir, ancak bunun yerine damla izin vermez Grid veya Window kadar kaynamaktadır. aşağıdaki gibi Transparent arka planı ayarlayın ve çalışması gerekir:

<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

Bu bir cazibe gibi çalışır! kodunda yapmak istediğiniz bir şey gibi:

Canvas myCanvas = new Canvas(); 

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