ThinkGeo.com    |     Documentation    |     Premium Support

V10 - Exception if Map Control Not Visible

MapSuite Team,

I placed the Map Control within a TabItem on a TabControl as shown below. When the application starts a TabItem other than the one the Map Control is within, is displayed. Upon loading a WMS Layer and invoking MapRefresh, MapRefresh encounters an exception as shown below.

If I select the TabItem prior to loading the WMS Layer so that the Map Control is visible the MapRefresh does not encounter an exception and the layer is displayed.

Dennis

            <TabItem Header="Show Map" Name="tabShowMap" FontSize="14">
                <Grid Name="gridTab2">
                    <uc1:WpfMap BorderBrush="Brown" BorderThickness="2" Margin="4" Name="wpfMap" TabIndex="4" Loaded="WpfMap_Loaded" />
                </Grid>
            </TabItem>

System.ArgumentException was unhandled
HResult=-2147024809
Message=Parameter is not valid.
Source=System.Drawing
StackTrace:
at System.Drawing.Bitmap…ctor(Int32 width, Int32 height, PixelFormat format)
at System.Drawing.Bitmap…ctor(Int32 width, Int32 height)
at ThinkGeo.MapSuite.Wpf.BackgroundOverlay.DrawCore(RectangleShape targetExtent, OverlayRefreshType refreshType)
at ThinkGeo.MapSuite.Wpf.Overlay.Draw(RectangleShape targetExtent, OverlayRefreshType refreshType)
at ThinkGeo.MapSuite.Wpf.WpfMap.IVM=(Overlay overlay, RectangleShape targetExtent, OverlayRefreshType overlayRefreshType, TimeSpan bufferTime, RequestDrawingBufferTimeType bufferTimeType)
at ThinkGeo.MapSuite.Wpf.WpfMap.5BU=(IEnumerable`1 drawingOverlays, RectangleShape targetExtent, OverlayRefreshType refreshType, TimeSpan bufferTime, RequestDrawingBufferTimeType bufferTimeType)
at ThinkGeo.MapSuite.Wpf.WpfMap.5BU=(RectangleShape targetExtent, OverlayRefreshType refreshType)
at ThinkGeo.MapSuite.Wpf.WpfMap.DrawCore(RectangleShape targetExtent, OverlayRefreshType overlayRefreshType)
at ThinkGeo.MapSuite.Wpf.WpfMap.Refresh()
at OriStarWmsClient.TheWmsLayerCountries.LoadLayerCountries() in C:\OriStarMappingIncMapSuiteV10Secondary\OriStarWmsClient\TheWmsLayerCountries.cs:line 150
at OriStarWmsClient.MainWindow.butLoadWmsLayer_Click(Object sender, RoutedEventArgs e) in C:\OriStarMappingIncMapSuiteV10Secondary\OriStarWmsClient\MainWindow.xaml.cs:line 261
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
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.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
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 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at System.Windows.Application.Run()
at OriStarWmsClient.App.Main()
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:

Hi Dennis,

We need to reproduce that first, it looks your information is not enough to reproduce that.

Please modify attached sample here:8749.zip (10.3 KB)

And our developer will look into it.

Regards,

Ethan

hi Ethan,

Thank you for providing the base application.

I was able to recreate the exception in you application as shown below. All I did was to add another TabItem in position 0 as shown below.

Dennis

Hi Dennis,

Here is my test result:

Here is the modified sample:
8749.zip (10.1 KB)

So do you think that’s an environment again? I think you can try to restore all your packages include your cache.
Please delete all the cached package and try again:
%LocalAppData%…nuget\packages
%LocalAppData%\NuGet\Cache

If you found my updated project don’t contains all your changed code, please modify it again and update here so we can try it.

Regards,

Ethan

Ethan,

I deleted %LocalAppData%\NuGet\Cache, but could not find %LocalAppData%…nuget\packages.

I updated the installed packages as shown below in my version of the application, but still receive the same exception.

I downloaded and updated your latest application and it also still encounters the exception.

Dennis

Hi Dennis,

It looks that’s our community problem, it eat the “” in my string.

It should be

 %LocalAppData%\..\..\.nuget\packages


Then you can build the project, it will download all packages from Nuget.org again.

And that’s my guess this problem is because the cached packages, please let us know your test result.

Regards,

Ethan

Ethan,

This is getting very confusing with all these ‘cached’ items.

What and where exactly is %LocalAppData%…\nuget\packages and what is it that I should be deleting from there.

Are you talking about this directory…C:\Users\dberr.nuget\packages?

I deleted the packages from the project and that caused errors and it would not rebuild. So I put those back.

Thanks,
Dennis

Hi Dennis,

I think your path is correct, but it looks it also missed the slash.

The packages is you downloaded before and automatic saved by the Nuget plugin in VS.

Delete them and solve some environment problem.

The VS will download the new package again from Nuget server after you delete the packages folder when you try to build the project. If you met error in this step, I think you should want to check your VS status.

Regards,

Ethan

hi Ethan,

This has been fixed.

Thanks for your help.

Dennis

Hi Dennis,

I am glad to hear that works.

Regards,

Ethan