You have two options:
1) Lay two canvases on top of each other. Put scaling objects in one, non-scaling objects in the other. Scale only the one canvas.
2) Apply a ScaleTransform to objects which you don't want scaled. The ScaleTransform's value is databinded to the ScrollViewer ZoomFactor in an inverse proportion. The daabinding must go through a converter to be inverted (literally 1/ZoomFactor).
Matt Small - Microsoft Escalation Engineer - Forum Moderator
If my reply answers your question, please mark this post as answered.
NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined
objects and unknown namespaces.