Перетаскивание прямоугольника внутри сетки - PullRequest
1 голос
/ 24 августа 2010

Мне удалось разобрать мою проблему с "перетаскиваемой сеткой", однако я обнаружил другую проблему.

Когда я начинаю перетаскивать прямоугольник, он исчезает и снова появляется при наведении мыши.

Мой код:

public Page()
  {
   InitializeComponent();

   dragGrid.AddHandler(RadDragAndDropManager.DragQueryEvent, new EventHandler<DragDropQueryEventArgs>(OnDragQuery));
   dragGrid.AddHandler(RadDragAndDropManager.DropQueryEvent, new EventHandler<DragDropQueryEventArgs>(OnDropQuery));
   dragGrid.AddHandler(RadDragAndDropManager.DropInfoEvent, new EventHandler<DragDropEventArgs>(OnDropInfo));
   dragGrid.AddHandler(RadDragAndDropManager.DragInfoEvent, new EventHandler<DragDropEventArgs>(OnDragInfo));

   Loaded += new RoutedEventHandler(Page_Loaded);
  }

  void Page_Loaded(object sender, RoutedEventArgs e)
  {
   //Initialise the draggable elements
   RadDragAndDropManager.SetAllowDrag(onePX, true);
   RadDragAndDropManager.SetAllowDrag(twoPX, true);
   RadDragAndDropManager.SetAllowDrag(fourPX, true);
  }

  private void OnDragQuery(object sender, DragDropQueryEventArgs e)
  {
   if (e.Options.Status == DragStatus.DragQuery)
   {
    e.QueryResult = true;

    //The DragAndDropmanager will detach the element and drag it around the screen. 
    var source = e.Options.Source as Rectangle;
    source.Visibility = Visibility.Collapsed;

    e.Options.Payload = source;

    e.Handled = true;
   }

   if (e.Options.Status == DragStatus.DropSourceQuery)
   {
    e.QueryResult = true;
   }
  }

  private void OnDropQuery(object sender, DragDropQueryEventArgs e)
  {
   if (e.Options.Status == DragStatus.DropDestinationQuery)
   {
    e.QueryResult = true;
   }
  }

  private void OnDragInfo(object sender, DragDropEventArgs e)
  {
   if (e.Options.Status == DragStatus.DragCancel)
   {
    e.Options.Source.Visibility = Visibility.Visible;
   }
  }

  private void OnDropInfo(object sender, DragDropEventArgs e)
  {
   if (e.Options.Status == DragStatus.DropComplete)
   {
    Grid.SetColumn(e.Options.Source, Grid.GetColumn(e.Options.Destination));
    Grid.SetRow(e.Options.Source, Grid.GetRow(e.Options.Destination));

    e.Options.Source.Visibility = Visibility.Visible;

    e.Handled = true;
   }
  }

XAML:

<UserControl
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dragDrop="clr-namespace:Telerik.Windows.Controls.DragDrop;assembly=Telerik.Windows.Controls"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="TestBench.Page"
        MinHeight="500" MinWidth="300">
    <Grid x:Name="LayoutRoot" Background="White">
     <Grid x:Name="dragGrid" Margin="0,0,0,58" ShowGridLines="False">
      <Grid.RowDefinitions>
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
       <RowDefinition Height="32" />
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
       <ColumnDefinition Width="32" />
      </Grid.ColumnDefinitions>

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="0" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="0" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="1" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="1" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="2" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="2" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="3" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="3" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="4" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="4" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="5" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="5" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="6" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="6" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="7" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="7" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="8" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="8" />

      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="0" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="1" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="2" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="3" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="4" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="5" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="6" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="7" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="8" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="9" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="10" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="11" Grid.Row="9" />
      <Rectangle dragDrop:RadDragAndDropManager.AllowDrop="True" Fill="LightBlue"
       Grid.Column="12" Grid.Row="9" />

      <Rectangle Width="32" Height="32" Fill="Black" x:Name="onePX"
       Grid.Column="0" Grid.Row="0" />

      <Rectangle Width="32" Height="64" Fill="Black" x:Name="twoPX"
       Grid.Column="0" Grid.Row="2" Grid.RowSpan="2" />

      <Rectangle Width="64" Height="64" Fill="Black" x:Name="fourPX"
       Grid.Column="0" Grid.Row="5"
       Grid.ColumnSpan="2"
       Grid.RowSpan="2" />
      <TextBlock x:Name="textOutput" HorizontalAlignment="Left" Margin="8,8,0,8" Grid.Row="10" Grid.RowSpan="2" TextWrapping="Wrap" Text="TextBlock" d:LayoutOverrides="Height" Grid.ColumnSpan="6" Width="184"/>
     </Grid>
    </Grid>
</UserControl>

Теперь, я знаю , что мой код отсоединяет Rectangle от Grid (именно поэтому он исчезает), любая идея, как я могу это остановить (или было бы неплохо элегантно обойтись) ^ _ ^

1 Ответ

2 голосов
/ 24 августа 2010

Ваше перетаскивание не устанавливает метку перетаскивания.Самое простое решение - добавить этот код в середину вашего OnDragQuery.Затем вы получите красивый прямоугольник, перетаскивающий курсор:

        source.Visibility = Visibility.Collapsed;
        /* add these 5 lines - copies properties into a drag cue  */
        var cue = new Rectangle();
        cue.Height = source.Height;
        cue.Width = source.Width;
        cue.Fill = source.Fill;
        e.Options.DragCue = cue;

        e.Options.Payload = source;

Я включил сетку, чтобы вы могли ясно видеть эффект на этом снимке экрана при перетаскивании прямоугольника 2x2:

alt text

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