They key piece is that: markers must only be shown when all the data points are visible.
There appears to be some hard-coded marker width that determines when to hide the markers. The attached code shows that a skinny line marker gets hidden at the same time as the circle markers (when resizing the width of the window).
The closeness of our data points (within our actual project) are barely out of the resolution of the chart for zooming in such that the points are sufficiently far enough apart that guarantees prevention of the chart hiding the data points.Therefore permanently preventing the points from ever being hidden is our best option. And this is viable because we are already doing our own down-sampling to a handful of points (the chart only ever sees 1000 points).
The second option 'brute-force' option would be to recompile the source with an adjusted hard-coded marker width which would fix the issue as well (given your help on locating this hard-coded constant).
Any ideas on how to accomplish this?
Hi Will,
I took a look at the source code to see if I could find out how we are handling marker hiding and I believe I've found the code in question. When the markers are being prepared, it looks through all the possible markers and runs them through a collision method to see if they collide with any other markers. If they do, it skips that marker and moves on to the next one. All markers that avoid collision are passed on for rendering. I didn't see any settings that would allow users to control this behavior so I don't think it's something you can disable without modifying the source code. I recommend that you add this as a new product idea for the chart here: http://ideas.infragistics.com.
If you are up for modifying the source code then the code in question is located in CategoryFramePreparer.cs inside the PrepareMarker method. You will see an if check and at the end you will see a collisionAvoider.TryAdd method. If this returns true, it will add the marker. If you want all markers to be visible regardless of whether they overlap with each other you should be able to remove that TryAdd method from the if check. Obviously there are disadvantages to modifying the source code, the main one being that you are now responsible for maintaining any changes you made as once we release a new patch, your changes will no longer be present when you update.
Is there no way to disable the behavior by inheriting from some kind of Series?I found a snippet of code on this forum that just happens to inherit HorizontalAnchoredCategorySeries and appears to allow the markers to overlap.
But the code seems like it is hacked together. I'll try to reference the post if I can find it.
Did you notice the initial project that was posted? The skinny lines should be collapsed later if based upon collision.