Я бы порекомендовал вам использовать XNA для вашего 3D-вида, но вы можете управлять в WinForms.App Hub (Microsoft) имеет очень хороший пример с использованием XNA с WinForms ( part 2 ).Таким образом, у вас есть отличный API для 3D-графики и отличный API для создания интерфейсов (без необходимости сгибать один API для выполнения обеих задач).
У меня сложилось впечатление, что Mono.XNA безнадежно неполон.Это также не обновляется много ( список исправлений ).Вот (на момент написания) текущая версия довольно критического класса для создания 3D-графики: GraphicsDevice.cs - обратите внимание на NotImplementedException
s, генерируемые всеми функциями Draw*
, необходимыми для 3D-рисования.
Существует несколько кроссплатформенных API-интерфейсов XNA (я даже написал один из них), и ни один из них еще не подходит для 3D.Может быть, однажды.
Если вам действительно нужна поддержка Linux, возможно, стоит использовать OpenTK для вашей графики.Недостатком OpenTK является то, что он далеко не так хорошо поддерживается и не прост в использовании, как XNA.
Я бы порекомендовал вам сделать все возможное, чтобы избежать использования (или, что еще хуже, создания) библиотеки GUI.на платформе 3D-графики (XNA или OpenTK).Существует причина, по которой большинство существующих библиотек плохо поддерживаются или отказываются.У меня сложилось впечатление, что реализация WinForms в Mono довольно хороша в наши дни, и есть Gtk # , если вы предпочитаете.