This is really 3 questions/comments about zooming....
Simple comment: The atDiagram.zoom property is only updated after a MouseWheel event ends so getting the zoom value while in the event procedure returns the zoom value from before the event started. I got round this by starting a 10ms timer on MouseWheel and getting the new zoom value there.
Zooming about a point: The ZoomMoveToFit method is very handy, zooming and positioning the diagram in the center of the window. However zooming (in) after that expands the diagram about the top-left corner so the diagram rapidly disappears out the bottom right corner of the window. I have tried resetting the scrollbars to re-center the diagram but can't figure out what needs to go where and by how much. :-( If anyone has some code on how I can do this I would be most grateful! A method to zoom centered on the mouse position would be even better!
Diagram margins when zooming: When a diagram is zoomed in, the top and left 'margins' are maintained however the bottom and right edges of the window are set hard up against the edge of the diagram. This is ugly and not user friendly. I tried setting the atDiagram margin and increasing the ClientWidth/Height after a MouseWheel zoom event if the scrollbars are active but neither worked.
Again, any solutions would be appreciated.
David.