ThinkGeo.com    |     Documentation    |     Premium Support

Help - Drag and Drop Issue (EditOverlay)



Hi,

I'm trying to use the edit overlay for doing some drag and drop operations.

I've attached a sample to illustrate the problem I am having.

To see the problem follow these instructions:


1. Unzip the solution folder and build and run the application. Upon start up you should see a bunch of points on the map.

2. Zoom in and click on a single point. 

3. The sample code will "select" the point by putting it in the Custom EditOverlay edit shapes layer (see the source code).

You should see a new point shape appear on top of the point you clicked on.

4. Grab the new point and drag it to a different point.  As you get close to another point, a WPF context menu

should appear, and the point that is being dragged should disappear.

5. Select a menuitem. It doesn't matter what one, as they do nothing in this sample. The menu item goes

away.


The problem begins at this point. It appears that the EditOverlay still thinks it is in "drag mode", even though the 

mouse has been released, and in fact the mouse has been used to select a menuitem. You will see that there are no EditOverlay layer

points being displayed any more, as the code clears those out and calls CalculateAllControlPoints(). 

But, if you move your mouse near another point on the map, you will see the context menu appear again. 

If you look at the console output, you will see that the dragging event is still firing, as if the drag operation is

still underway.


What I want to happen is for the drag operation to terminate at this point.


What do I need to do cause the EditOverlay to go out of "drag/drop" mode.


Dave



WpfApplication8-drag-drop.zip (31.7 KB)

Hi Dave, 
  
 Thanks for your sample, we reproduced this issue. 
  
 This happens because when we single click on a context menu item (which is not included in the main visual tree), the overlay can’t get the MouseUp event. 
 So what we need to do is to call the edit overlay’s MouseUp method after clicking any context menu item. 
 This may not be the perfect solution, but it works. 
  
 Please try it and let us know how it goes, and if you have any other questions regarding this issue, please feel free to let us know. 
  
 Regards, 
 Tsui