The diagram has a built-in UI virtualization, but it's implementation kicks-in only after the diagram is loaded initially. The slow loading time comes from the fact that the diagram creates the containers for all the shapes initially. So, in summary it is expected for the diagram to be slow at first start.
In order to improve the initial load time you can implement some data virtualization that loads only the shapes that should be visible in the viewport. Then load the rest on demand. For example, when the diagram loads empty you can get its viewport, via the Viewport
property. Then you can load only the shapes which positions are inside the viewport rectangle. You can load the rest of the shapes when the viewport changes. Or if you prefer you can start a timer and load shapes on portions.
I hope this suggestion helps.
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin
, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.