ThinkGeo.com    |     Documentation    |     Premium Support

ExtentInteractiveOverlay in WPF

Firstly, the LeftClickDragKey property is a System.Windows.Forms Key object. Is this on purpose? Why aren't we using System.Windows.Input? I would like not to reference any win forms things.


edit:


Apparently if you set the LeftClickDragKey to None, it means the ExtentInteractiveOverlay will be active regardless of the setting of LeftClickDragMode.



Follow-up question… Why can’t I have the LeftClick do ZoomOut? Why make the RightClick only ever do zoom out and the LeftClick only ever zoom in? 
  
 I want to make a tool that does the zoom out using left click and drag, if they choose to.

 Cody,


I think it's a legecy problem, when we first define the API we might want it to make consitant with DesktopEdition so that we use the same type, however even we know it's not good choice but we couldn't change it because it will cause our dll breaking-change that not compatiable with old version.


It's possible to have the LeftClick do Zoom out, you can extend our MapSuite that just create a custom overlay and override the MouseDownCore method and assign the it to wpfMap.ExtentOverlay


    public class CustomExtentInteractiveOverlay : ExtentInteractiveOverlay
    {
        protected override InteractiveResult MouseDownCore(InteractionArguments interactionArguments)
        {
            if (interactionArguments.MouseButton == MapMouseButton.Left)
            {
                interactionArguments.MouseButton = MapMouseButton.Right;
            }
            else if (interactionArguments.MouseButton == MapMouseButton.Right)
            {
                interactionArguments.MouseButton = MapMouseButton.Left;
            }
            return base.MouseDownCore(interactionArguments);
        }
    }

wpfMap1.ExtentOverlay = new CustomExtentInteractiveOverlay();

Let me know if you have more questions.


Thanks,


James