Не уверен, что может быть ViewportController. Однако метод Draw () запускается запросом рисования Windows. При этом запускается метод Control.OnPaint (), для него есть переопределение в классе GraphicsDeviceControl, что приводит к запуску Draw ().
В примере SpinningTriangleControl показано, как получить элемент управления для многократного перерисовывания, что нужно для его анимации:
// Hook the idle event to constantly redraw our animation.
Application.Idle += delegate { Invalidate(); };
Обратите внимание на вызов метода Control.Invalidate (), это то, что в конечном итоге приводит к запуску метода OnPaint (). Использование события Idle гарантирует, что это будет выполняться снова и снова, но только если основной поток не занят чем-либо другим. Это не обязательно для элементов управления, которые показывают только статическое содержимое, например, образец SpriteFontControl. Другой способ сделать это - использовать Timer с коротким интервалом, его обработчик событий Tick может вызывать Invalidate ().