// moving camera private void Window_MouseMove(object sender, MouseEventArgs e) { if (SelectedTab != null && e.LeftButton == MouseButtonState.Pressed) { if (SelectedViewport3D.IsDescendantOf(this)) { Point currentMousePosition = e.GetPosition(SelectedViewport3D); if (currentMousePosition.X > 0 && currentMousePosition.Y > 0 && currentMousePosition.X < SelectedViewport3D.ActualWidth && currentMousePosition.Y < SelectedViewport3D.ActualHeight && !SelectedRadiusSlider.IsMouseCaptureWithin && !SelectedAngleSlider.IsMouseCaptureWithin) { PerspectiveCamera camera = SelectedViewport3D.Camera as PerspectiveCamera; Vector delta = currentMousePosition - MouseInitialPosition; if (delta.Length < 50) { camera.RotateWithMouse(delta); } } MouseInitialPosition = currentMousePosition; } } }