立即拖放用户控件

时间:2010-12-23 14:58:11

标签: user-controls silverlight-4.0 drag-and-drop

在我的silverlight应用程序应用程序中,我使用的是由信息区域组成的用户控件,以及下面的箭头图像(如图表元素)。这是XAML:

<UserControl xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"  
         x:Class="ClientGUI.Components.Clusters.ClusterLeftMenuUC"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">

<toolkit:PanelDragDropTarget AllowDrop="True">
    <StackPanel Orientation="Vertical" Background="Transparent">
        <Border CornerRadius="10" BorderBrush="Black" BorderThickness="2" Padding="0">
            <Grid>

                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>

                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>

                <TextBlock  Text="ClusterName" Grid.Row="1" Grid.Column="1"/>
                <TextBlock Text="{Binding Type}" Grid.Row="2" Grid.Column="1" />
                <TextBlock Text="#Dest" Grid.Row="3" Grid.Column="2" />
            </Grid>
        </Border>
        <Image Source="/ClientGUI;component/Images/arrow.png" Height="40" Margin="0,-2,0,0" Canvas.ZIndex="-1" />
    </StackPanel>
</toolkit:PanelDragDropTarget>

usercontrol包含一个dropTarget,因为我必须能够从另一个源中删除项目(这不是我的问题)。

此usercontrol用于页面中的ListBox。我希望能够使用drag&amp; amp;掉落机制。 我的ListBox也包含在ListBoxDragDropTarget内。

问题在于,当我开始拖动我的usercontrol时,Image和边框内的数据充当单独的控件,因此只拖动其中一个。 我希望能够同时移动两个。 我做错了什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我有一个带有DataGrid的DataGridDragDropTarget,其中我有一个文本列和一个带有复选框的templatecolumn,我可以将一行拖放到列表框中。

也许你可以尝试使用带有templatecolumns的DataGridDragDropTarget而不是listbox。我不知道它是否会奏效。