13

我喜欢Monocross的想法,但是当我想使用全景图和/或枢轴控件时,我对 Windows Phone 7 有点迷失了。提供的唯一视图是页面视图。所以从一个页面导航到另一个页面效果很好!但现在我想要一个 Pivot 或 Panorama。基本上我可以为这个视图创建一个新的控制器,但是在控件中获取“页面”。导航确实导航到它,但不在 Pivot / Panorama 内。

对于 Monotouch 和 MonoDroid 示例,已经准备好如何执行此操作(基本上创建了一个新的视图控制器)。但是WP7被抛在了后面。

有人吗?

4

2 回答 2

1

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

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

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

我的发展还没有完成,但到目前为止,我对自己的进步感到非常满意。我为 Windows 应用程序开发用户界面已经有 20 年了,我从不使用界面构建工具,因为我发现它们从来没有给我想要的东西,真的浪费了我的时间(虽然 Blend 很酷),而且还造成了巨大的代码膨胀特别是在混合中。

于 2012-02-15T01:39:04.873 回答
0

我不能完全帮助 monocross - 我曾经为 droid 做过一个示例 - https://github.com/slodge/monocross-tab-activity-view - 但我从未完成过 wp7 部分。

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

我选择的基本技术是为全景图的每个“选项卡”使用子视图模型 - 查看如何为https://github.com/slodge/MvvmCross/blob/master/Sample%20中的每个项目设置数据绑定 DataContext -%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

选项卡和数据透视示例

于 2012-04-19T11:57:54.633 回答