Использование Monocross в Windows Phone 7 с панорамой и / или управлением Pivot - PullRequest
13 голосов
/ 01 февраля 2012

Мне нравится идея Monocross , но я немного потерян для Windows Phone 7, когда я хочу использовать элемент управления Panorama и / или Pivot. Единственный представленный вид - это вид страницы. Так что навигация с одной страницы на другую прекрасно работает! Но сейчас я хочу Pivot или Panorama. По сути, я мог бы создать новый контроллер для этого представления, но получить «страницы» внутри элементов управления. Навигация действительно Навигация к ней, но не в Pivot / Panorama.

Для образцов Monotouch и MonoDroid было подготовлено, как это сделать (в основном был создан новый viewcontroller). Но WP7 остался позади.

Кто-нибудь?

Ответы [ 2 ]

1 голос
/ 15 февраля 2012

Я также занимаюсь кроссплатформенной разработкой с использованием mono, и, как и вы, и многие другие сталкиваются с проблемой того, что делать с пользовательским интерфейсом и другой базовой аппаратной интеграцией.

Я решил, что не хочу зависеть от еще одного стороннего фреймворка (достаточно моно), и искал решение, которое я мог бы создать и поддерживать самостоятельно.Новый шаблон MVVM вместе с Expression Blend действительно классный, но вскоре вы застряли, когда дело доходит до кроссплатформенной разработки. Шаблоны MVC и MVP также не подходили для того, что мне было нужно.Наконец, остановился на шаблоне PM и расширил его до PMH, где H - для аппаратного обеспечения.Чтобы достичь того, что мне было нужно, мне пришлось абстрагировать основные виджеты (кнопки, панели, текстовые поля) в базовый уровень платформы для каждого типа устройства.Уровень моей платформы составляет около 1% от моей базы кода и позволяет мне создавать приложения для каждого устройства, на которое я нацеливаюсь.

Для своего решения WP7 я использую едва ли какой-либо HTML, только около 25 строк, что достаточно для инициализацииприложение и главная страница.Остальная часть пользовательского интерфейса собрана программно, как в WinForms.В WP7 я все еще использую элемент управления Pivot, так как он действительно хорош и моделирует аналогичный элемент управления для использования на Android / iPhone.Хотя он не будет на 100% одинаковым, он будет очень похож и будет по-прежнему использовать тот же механизм навигации в моем основном коде.

Я еще не закончил свою разработку, но пока я очень доволен своим прогрессом.Я занимаюсь разработкой пользовательского интерфейса для приложений Windows уже около 20 лет, и я никогда не использую инструменты конструктора интерфейсов, так как нахожу, что они никогда не дают мне то, что я хочу, и действительно тратят мое время (хотя Blend довольно крутой), а также создают огромный раздувшийся кодособенно в Blend.

0 голосов
/ 19 апреля 2012

Я не могу полностью помочь с монокроссом - я однажды делал пример для дроида - https://github.com/slodge/monocross-tab-activity-view - но я никогда не заканчивал wp7-часть этого.

Для mvvmcross ... который связан с этим ... есть пара примеров - один в учебнике (немного странный!) И один в приложении для конференций - очень предпочтительный пример.

Основной метод, который я выбрал, состоял в том, чтобы использовать подвидовые модели для каждой «вкладки» панорамы - посмотрите, как DataContext для привязки данных устанавливается для каждого элемента в https://github.com/slodge/MvvmCross/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.WP7/Views/HomeView.xaml

Обратите внимание, что в больших приложениях могут быть важные проблемы с памятью, которые следует учитывать при выполнении этого, особенно при использовании сводного элемента управления, который не загружает все страницы в память одновременно (поэтому вам не нужно загружать все либо модели просмотра)

Небольшой блог в приложении conf: http://slodge.blogspot.co.uk/2012/03/update-on-mvvmcross-sqlbits-conference.html

И последний источник sql битов: https://github.com/slodge/MvvmCross/tree/master/Sample%20-%20CirriousConference

tabs and pivot example

...