ThinkGeo.com    |     Documentation    |     Premium Support

Drawing Exception

 Hi,


Some time(Randomly) whem I'm using Drawing tools I receive this Exception:


 


   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.MoveVertexCore(Feature sourceFeature, PointShape sourceControlPoint, PointShape targetControlPoint)


   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.MoveVertex(Feature sourceFeature, PointShape sourceControlPoint, PointShape targetControlPoint)


   at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.MouseMoveCore(InteractionArguments interactionArguments)


   at ThinkGeo.MapSuite.WpfDesktopEdition.InteractiveOverlay.MouseMove(InteractionArguments interactionArguments)


   at ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.txY=(InteractionArguments uBY=)


   at ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.tBY=(Object tRY=, MouseEventArgs thY=)


   at ohM=.nxg=.OnMouseMove(Object sender, MouseEventArgs e)


   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)


   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)


   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)


   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)


   at System.Windows.Input.InputManager.ProcessStagingArea()


   at System.Windows.Input.MouseDevice.Synchronize()


   at System.Windows.Input.MouseDevice.PostProcessInput(Object sender, ProcessInputEventArgs e)


   at System.Windows.Input.InputManager.RaiseProcessInputEventHandlers(ProcessInputEventHandler postProcessInput, ProcessInputEventArgs processInputEventArgs)


   at System.Windows.Input.InputManager.ProcessStagingArea()


   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)


   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)


   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)


   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)


   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)


   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)


   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)


   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)


 


do you have any idea about it?



Hi Ben, 
  
 Could you attach the exception message as well, that might give us a clue to track the real problem you encountered. If possible, would you please let us know the WpfDesktopEdition version, OS and the custom settings on the EditInteractiveOverlay. 
  
 Thanks, 
 Howard

Hi, 
  
 Message is a generic message, ‘Object referencing to null value …’ 
  
 Regards

Hi Ben, 
  
 How often this exception thrown when you use Drawing tools? 
  
 Which detail version of WPF Desktop Edition you are using? And if some other more environment include OS version and IDE version should be more helpful. 
  
 Sorry we haven’t get more information from this exception, so we are trying to reproduce it. 
  
 Regards, 
  
 Don

Hi Ben  
  
 Would you please tell us the version of the dlls, and your custom settings on EditInteractiveOverlay or some sample code for a further test? To be honest, the message is really a generic message, we are unable to get anything from it. 
   
  
 Waiting for your further information,  
  
 Johnny

Hi, 
  
 I just found another issue which may help you to solve this problem. 
  
 we can use double click to remove one vertex, for example if you have rectangle and you double click near a vertex it will convert it to a triangle.  
  
 But logically we can’t use this feature alway. For example when we have Triangle we can remove one vertex (or when you have a polyline with two vertices), but seems you didn’t manage that, therefore if you click near a vertex of Triangle you will receive this exception: 
  
  
 System.NullReferenceException: “Object reference not set to an instance of an object.” 
  
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.CalculateDragControlPointsCore(Feature feature) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.CalculateDragControlPoints() 
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.CalculateAllControlPoints() 
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.EndEditingCore(PointShape targetPointShape) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.EndEditing(PointShape targetPointShape) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.RemoveVertex(PointShape targetPointShape, Double searchingTolerance) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.EditInteractiveOverlay.MouseDoubleClickCore(InteractionArguments interactionArguments) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.InteractiveOverlay.MouseDoubleClick(InteractionArguments interactionArguments) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.vBY=(InteractionArguments vRY=) 
    at ThinkGeo.MapSuite.WpfDesktopEdition.WpfMap.uRY=(Object uhY=, MouseButtonEventArgs uxY=) 
    at ohM=.nxg=.OnDoubleClick(Object sender, MouseButtonEventArgs e) 
    at ohM=.nxg=.GBk=(Object GRk=, MouseButtonEventArgs Ghk=) 
    at ohM=.nxg=.OnMouseMove(Object sender, MouseEventArgs e) 
    at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 
    at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
    at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 
    at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) 
    at System.Windows.Input.InputManager.ProcessStagingArea() 
    at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) 
    at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) 
    at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
    at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
    at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

Hi Ben,  



Thanks for your information, we tried to recreate the problem, but it didn’t show up with latest version 7.0.16.0, would  you please provide us some code to test, or if possible a “self-contained sample” is highly appreciated.  following is a test video for your information:screencast.com/t/0OkvJG2IUd8 



Waiting for your further information 



Summer