Я также занимаюсь кроссплатформенной разработкой с использованием mono, и, как и вы, и многие другие сталкиваются с проблемой того, что делать с пользовательским интерфейсом и другой базовой аппаратной интеграцией.
Я решил, что не хочу зависеть от еще одного стороннего фреймворка (достаточно моно), и искал решение, которое я мог бы создать и поддерживать самостоятельно.Новый шаблон MVVM вместе с Expression Blend действительно классный, но вскоре вы застряли, когда дело доходит до кроссплатформенной разработки. Шаблоны MVC и MVP также не подходили для того, что мне было нужно.Наконец, остановился на шаблоне PM и расширил его до PMH, где H - для аппаратного обеспечения.Чтобы достичь того, что мне было нужно, мне пришлось абстрагировать основные виджеты (кнопки, панели, текстовые поля) в базовый уровень платформы для каждого типа устройства.Уровень моей платформы составляет около 1% от моей базы кода и позволяет мне создавать приложения для каждого устройства, на которое я нацеливаюсь.
Для своего решения WP7 я использую едва ли какой-либо HTML, только около 25 строк, что достаточно для инициализацииприложение и главная страница.Остальная часть пользовательского интерфейса собрана программно, как в WinForms.В WP7 я все еще использую элемент управления Pivot, так как он действительно хорош и моделирует аналогичный элемент управления для использования на Android / iPhone.Хотя он не будет на 100% одинаковым, он будет очень похож и будет по-прежнему использовать тот же механизм навигации в моем основном коде.
Я еще не закончил свою разработку, но пока я очень доволен своим прогрессом.Я занимаюсь разработкой пользовательского интерфейса для приложений Windows уже около 20 лет, и я никогда не использую инструменты конструктора интерфейсов, так как нахожу, что они никогда не дают мне то, что я хочу, и действительно тратят мое время (хотя Blend довольно крутой), а также создают огромный раздувшийся кодособенно в Blend.