在Windows Phone 7上使用Monocross与全景和/或Pivot控件

13

我喜欢Monocross的想法,但在使用Windows Phone 7时,当我想要使用Panorama和/或Pivot控件时有点茫然。唯一提供的视图是页面视图,因此从一个页面导航到另一个页面非常好!但现在我想要一个Pivot或Panorama。基本上,我可以为此视图创建一个新的控制器,但无法将“页面”放入控件中。导航确实导航到了它,但不在Pivot / Panorama中。

对于Monotouch和MonoDroid,已经准备了如何执行此操作的示例(基本上创建了一个新的viewcontroller)。但WP7已经被落下了。

有人能帮忙吗?

2个回答

1

我也使用Mono进行跨平台开发,像你和许多其他人一样,面临着关于用户界面和其他底层硬件集成方面的问题。

我决定不想再受另一个第三方框架(Mono就足够了)摆布,并寻找了一种我自己可以构建和维护的解决方案。新的MVVM模式以及Expression Blend非常酷,但当涉及到跨平台开发时,你很快会发现自己陷入僵局。MVC和MVP模式似乎也不适合我所需的。最后选择了PM模式,并将其扩展为带有硬件部分(H)的PMH。为了实现我所需的功能,我必须将基本小部件(按钮、面板、文本框)抽象为每个设备类型的底层平台层。我的平台层占据了代码库的约1%,并允许我根据目标设备为应用程序设置皮肤。

对于我的WP7解决方案,我几乎不使用任何HTML,只有大约25行代码足以初始化应用程序和主页面。用户界面的其余部分是通过编程方式组合而成,就像在WinForms中一样。在WP7上,我仍然使用Pivot控件,因为它真的非常酷,并且正在模拟类似的控件以供Android/iPhone使用。虽然它不会完全相同,但它将非常相似,并且仍将在我的核心代码中使用相同的导航引擎。
我还没有完成开发,但到目前为止,我对自己的进展非常满意。我已经为Windows应用程序开发了20年的用户界面,我从来不使用界面构建工具,因为我发现它们从来不能给我想要的东西,而且浪费我的时间(尽管Blend非常酷),并且在Blend中创建了大量的代码膨胀。

0

我无法完全帮助你使用Monocross - 我曾经为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。

请注意,在更大的应用程序中,当执行此操作时可能需要考虑重要的内存问题 - 特别是当使用不将所有页面同时加载到内存中的枢轴控件时(因此您确实不需要加载所有视图模型)。

关于会议应用的一些博客内容:http://slodge.blogspot.co.uk/2012/03/update-on-mvvmcross-sqlbits-conference.html

最终的 SQL Bits 源代码:https://github.com/slodge/MvvmCross/tree/master/Sample%20-%20CirriousConference

tabs and pivot example


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接