Hello @Kyle_Day,
Thank you for the quick response!
We have a windows 10 tablet that we tested this on, however we often test out touch screen capability on the desktop using a built in VisualStudio tool that allows to simulate touching the screen. This tool is a good replacement if you dont have a touch screen windows 10 tablet, and it still would allow you to simulate the problem from a desktop. If you would like here are the steps to get it:
1) Make sure UWP development tools are installed in Visual Studio. To install them in Visual Studio click Tools->Get Tools and Features and choose Universal Windows Platform development. Admin rights are required to install it.
2) Create a shortcut with a Target of:
C:\Windows\System32\runas.exe /user: “C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Simulator\16.0\Microsoft.Windows.Simulator.exe”
3) When you run the shortcut you will be asked for your PC password.
when its on you can turn on the build through the window that pops up and use the menu on the right side to select touching (pointing hand icon)
Here is the information you asked for
-
The versions I am using are:
ThinkGeo.UI.Wpf version 12.3.2
ThinkGeo.MapSuite.ProductCenter version 10.6.6
ThinkGeo.Dependency.WriteableBitmapEX version 12.2.1
ThinkGeo.Dependency.SQLite version 12.2.1
ThinkGeo.Dependency.SkiaSharp version 12.3.0
ThinkGeo.Dependency.NetTopologySuite version 12.2.1
ThinkGeo.Dependency.Jint version 12.2.1
ThinkGeo.Core version 12.3.2
-
Normally the functionality is fine until the first resize (after the screen was touched). After that the panning and zooming with both touch and mouse stopped working even after I resized the window to its original size; any further resizes did not fix the panning and zooming.
After doing some experimenting I noticed that sometimes when resized and the functionality is gone, the touch (but not mouse) panning and zooming works only in the top left quarter of the map display (When the map is large enough if its too small panning and zooming doesn’t work anywhere), after I touched the top left quarter the panning started working on the whole display again (until the map was resized again, then it stopped working). The whole functionality never comes back by just resizing the map again.
Here are screenshots of one example:
Original size that map (Panning and zooming is working fine)
Touched the map and resized the window to make the map display smaller, at this point the touch map does not work anymore on the entire map
After this I have resized the map back to full screen and both pan and zoom continued to not work for most of the map display (except the top left quarter of the map display) Once I have done something on the top left quarter the whole map panning and zooming functionality came back.
Further resizes have again made panning and zooming stop working.
Similarly to this our program has a collapse button (on the right of the map display above) that collapses the tables on the right and makes the map full screen. However using this gives the same effect as simply resizing the application window.
I noticed that when the map was small enough the full functionality disappeared, but when the map was larger the “top left quarter” method worked.
- Before me and my colleagues noticed the issue we have not implemented any other panning logic. Once we spotted the issue we made few simple Map.TouchMove and Map.MouseMove events that manually calculated panning; we hoped we could avoid the issue by making our own panning and disabling the built in methods using PanMode.Disabled. Unfortunately because the the PanMode.Disabled did not turn off panning using touch both our method of panning and the built in method was running (at least until we resized the window and the built in touch panning stopped working due to the problem, then only our method was panning the map and it worked fine untill sometimes something was done in the top left corner of the map display, and the original touch pan functionality came back) because the built in pan was panning the map normally, and our method was manually panning the map by the difference vector ( we used Map.Pan(diffX, diffY); ) the map was panning double the distance it should have.
Thank you for your help!
if you have any more questions feel free to ask, im happy to help in any way to solve this problem!