1

我正在使用DragDropListBoxTargetcontrol fromSilverlight Toolkit来支持拖放行为。但我面临着这个控制的问题。

很难抓住项目被丢弃的目标元素。在 ItemDroppedOnTarget 事件参数中必须有东西。

当我拖动一个项目时,我需要当用户放下它时,一个中间事件应该修改目标项目。但我找不到实现它的方法。

我是否使用了正确的控件,或者我还有什么其他选择?

4

1 回答 1

1

我有同样的问题。我最终使用了这个拖放工具。我重新编译了 Silverlight 5 的源代码。它让我知道目标。我也很懒惰,仍然想要使用工具包 DragDropTarget 控件时拖动的任何东西的幽灵拖动图片,所以我将源代码保存在其中,并且还包含在新的拖放工具中。

我定义拖动的方式:

<toolkit:ListBoxDragDropTarget AllowedSourceEffects="Copy">
    <ListBox ItemsSource="{Binding Path=UnitOfWork.Templates}" Width="130" Height="360" BorderThickness="0">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <dd:DragSource>
                        <TextBlock Text="{Binding Path=Name}" Width="120"/>
                    </dd:DragSource>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</toolkit:ListBoxDragDropTarget>

<dd:DropTarget Grid.Row="2" AllowDrop="True" OnDropped="Target_OnDropped">
    <Border BorderBrush="Black" BorderThickness="1" Width="98" Height="30">                
        <TextBlock Text="Drop Here" HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
</dd:DropTarget>

这种方式保留了ListBoxDragDropTarget创建的拖动幽灵,同时允许我使用dd:DragSourcedd:DropTarget控件来允许更细粒度的拖放。

于 2012-11-11T09:59:09.597 回答