// Window size changed or zoom level changed private void ViewSizeChanged() { // Pause the running simulation if (simRunning) { frameTimer.Cancel(); } sim.renderer.SetSimulationTransform(backgroundCanvas.ActualWidth, backgroundCanvas.ActualHeight); if (!firstRun) { sim.TransformChanged(); } // Restart the running simulation if (simRunning) { frameTimer = ThreadPoolTimer.CreatePeriodicTimer(RunSimFrame, new TimeSpan(0, 0, 0, 0, 1000 / (int)FrameRate)); } }