2009-08-20 51 views
0

我正在創建拖放行爲,目標是將項目拖到我的網格上,其中表示可用操作的一組裝飾元素將可供用戶使用放下元素。我的問題是一旦我將添加的元素添加到AdornerLayer中,我沒有收到任何Drag事件。我需要讓這些事件都改變UI並設置一些基礎屬性。我在AdornerLayer,裝飾元素,ContentPresenter中DataTemplate內部的按鈕和ContentPresenter本身上設置了AllowDrop = true,但仍然沒有收到任何事件。未接受裝飾元素上的拖動事件

<DataTemplate x:Key="promoMediaTemplate" DataType="{x:Type media:PromoMediaSearchResult}"> 
<Button Content="{Binding Path=Description}" Name="item" AllowDrop="True" Background="Red"/
<DataTemplate.Triggers> 
    <EventTrigger RoutedEvent="Button.PreviewDragEnter"> 
     <BeginStoryboard x:Name="TextBeginStoryBoard"> 
      <Storyboard> 
       <ColorAnimation 
        Storyboard.TargetName="item" 
        Storyboard.TargetProperty="Background" 
        Duration="0:0:1.0" 
        From="Red" To="Green" /> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
    <EventTrigger RoutedEvent="Button.PreviewDragLeave"> 
     <StopStoryboard BeginStoryboardName="TextBeginStoryBoard" /> 
    </EventTrigger> 
    <EventTrigger RoutedEvent="Button.PreviewDrop"> 
     <StopStoryboard BeginStoryboardName="TextBeginStoryBoard" /> 
    </EventTrigger> 
</DataTemplate.Triggers> 

回答