在Windows Phone 7上使用Monocross和Panorama和/或Pivot控件

时间:2012-02-01 07:51:39

标签: c# windows-phone-7 xamarin.ios xamarin.android monocross

我喜欢Monocross这个想法但是当我想使用Panorama和/或Pivot控件时,我对Windows Phone 7有点失落。提供的唯一视图是页面视图。因此,从一个页面导航到另一个页面非常有用!但现在我想要一个Pivot或Panorama。基本上我可以为这个视图创建一个新的控制器,但确实得到了控件内的“页面”。导航确实导航到它,但不在数据透视/全景内。

对于Monotouch和MonoDroid样本已经准备好了如何做到这一点(基本上创建了一个新的viewcontroller)。但是WP7已被抛在了后面。

任何人

2 个答案:

答案 0 :(得分:1)

我也正在使用单声道进行跨平台开发,就像你一样,许多其他人面临着如何处理用户界面和其他底层硬件集成的问题。

我决定我不想受到另一个第三方框架(单声道就足够了)的摆布,并研究了我可以自己构建和维护的解决方案。新的MVVM模式以及Expression Blend非常酷,但很快就会发现自己在跨平台开发时遇到困难。MVC an MVP模式似乎也不适合我需要的模式。最后确定了PM模式并将其扩展为PMH,其中H代表硬件。为了实现我的需要,我必须将基本小部件(按钮,面板,文本框)抽象为每种设备类型的底层平台层。我的平台层代表了我的代码库的大约1%,并允许我为我为其定位的每个设备设置应用程序。

对于我的WP7解决方案,我几乎不使用任何HTML大约25行,这足以初始化应用程序和主页面。用户界面的其余部分以编程方式放在一起,就像在WinForms中一样。在WP7上我仍然使用Pivot控件,因为它非常时髦并且正在为Android / iPhone上使用类似的控件建模。虽然它不会100%相同,但它将非常相似,并且仍在我的核心代码中使用相同的导航引擎。

我还没有完成我的发展,但到目前为止,我对我的进步感到非常满意。我已经为Windows应用程序开发了大约20年的用户界面,我从不使用界面生成器工具,因为我发现它们从未给我我想要的东西而且真的浪费我的时间(尽管Blend非常酷)并且还创建了巨大的代码膨胀特别是在Blend。

答案 1 :(得分:0)

我无法完全帮助uniross - 我确实为droid做过一次样本 - https://github.com/slodge/monocross-tab-activity-view - 但我从未完成过wp7部分。

对于mvvmcross ...这是相关的...有几个示例 - 一个在教程中(有点hacky!)和一个在会议应用程序中 - 很多是首选样本。

我选择的基本技术是为全景图的每个“制表符”使用子视图模型 - 查看如何为https://github.com/slodge/MvvmCross/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.WP7/Views/HomeView.xaml中的每个项目设置数据绑定DataContext

请注意,在更大的应用程序中,执行此操作时可能会考虑重要的内存问题 - 尤其是在使用不会同时将所有页面加载到内存中的数据透视控件时(因此您实际上并不需要加载所有内容) viewmodels))

关于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