все, я собираюсь портировать свое приложение с VB.net на проект MONO на С#, поэтому он может работать как на Windows, так и на Mac. Тем не менее, мне нужна альтернатива WPF для Mac. Он должен иметь очень похожую функциональность. QML (по QT) не является жизнеспособным вариантом, поскольку для нас это слишком много денег.
Перекрестная платформа Альтернативы WPF
Ответ 1
Мигель де Икаса рекомендует MonoMac в качестве замены WPF для Mac, как указано здесь. Как он объясняет, нет плана по внедрению WPF в моно.
MonoMac - это незавершенное производство. Некоторые части API Cocoa еще не завершены. Вы должны начать с samples, чтобы получить представление о том, что возможно.
Вам нужно будет создать два разных пользовательских интерфейса поверх общего движка, но это, как правило, хорошее разделение проблем.
Существует также возможная общая база кода для пользовательского интерфейса с GTK #.
Ответ 2
Существует также https://github.com/AvaloniaUI/Avalonia многоплатформенный интерфейс .NET UI, основанный на WPF
Ответ 3
В зависимости от функциональности вашего приложения вы можете перенести приложение в Silverlight/Moonlight. Silverlight поддерживается на MAC, но вам понадобится Moonlight для Linux. Конечно, если вы много работаете с файловой системой клиентской машины или нет, это не вариант.
Ответ 4
Я принял ответ некоторое время назад, я хочу опубликовать то, что я делаю сейчас, если кто-то рассмотрит этот вопрос.
В настоящее время я использую Python с PyGTK для графического интерфейса и GStreamer для видео. Это дает результаты, почти идентичные WPF (за исключением некоторых жестко настроенных анимаций). Кроме того, он работает в Windows, Mac и Linux.
РЕДАКТИРОВАТЬ: GStreamer не выходил за мои цели. Хотя он работает хорошо по большей части, я не мог сложить прозрачные .png изображения по видео. Я наконец переключился на Adobe Flash (Adobe AIR).
EDIT 2: Для тех, кто приходит через это позже, когда будущее SWF упало на вопрос, моя компания начала строить свою собственную систему анимации в С++, используя некоторые компоненты Gtk +/gtkmm и Каир. В конечном счете, это подпадает под совет другого ответа... отдельный графический интерфейс с платформы.