I use a grid and modify the grid, and i never put it to auto again, I use scaleTransform to zoom, not height or width, and i just have to reset to 1.
fixed width or height is just a trick to don't have strange resize, but i'm not sure you will need to.
Zoommlevel in my code is REALLY a zoomleve, that contains a lot of object inside.
www.obsidianart.com