Перетащите пользовательский контроль сразу - PullRequest
1 голос
/ 23 декабря 2010

В своем приложении 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, потому что я должен иметь возможность удалить элемент из другого источника (что здесь не моя проблема).

Этот пользовательский контроль используется в ListBox на странице. Я хотел бы иметь возможность отсортировать этот список, используя механизм перетаскивания. Мой ListBox также завернут в ListBoxDragDropTarget.

Проблема в том, что когда я начинаю перетаскивать свой пользовательский элемент управления, изображение и данные внутри границы действуют как отдельные элементы управления, поэтому перетаскивается только один из них. Я хотел бы иметь возможность перемещать оба одновременно. Что я делаю не так?

Заранее спасибо!

1 Ответ

1 голос
/ 29 апреля 2011

У меня есть DataGridDragDropTarget с DataGrid, в котором у меня есть один текстовый столбец и один шаблонный столбец с флажком, и я могу перетащить одну строку в список.

Возможно, вы можете попробовать использовать DataGridDragDropTarget с шаблонными столбцами вместо списка. Я не знаю, сработает ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...