MvvmCross(v3):在多平台应用程序中(尝试)使用行为和故事板是错误的吗?

时间:2013-04-30 13:24:51

标签: c# windows-8 mvvmcross

我想知道在这种情况下什么是最佳实践(或其他人如何解决这个问题)。

我试图用MvvmCross创建一个简单的游戏,希望能够在不同的平台上运行。实际上我只有以前的Windows Phone开发经验,而我现在已经进一步发展了#34;尝试使用WinRT应用程序(下一步...... Android!)。

即使是一款简单的游戏,我也需要在这里和那里创建一些动画来让事情变得更有趣/更顺畅。

在WP7上我习惯于创建故事板(使用Blend)并使用行为触发动画以响应值更改,正确答案等等,所有这些都避免了代码隐藏技巧。 我简单地认为我也可以轻松地在其他平台上做同样的事情,无论如何,但我认为我必须重新考虑很多细节=> (今天我已经了解到WinRT不支持行为和事件触发器)

为了完整性,我将写两个有问题的场景示例:

1)我有一些隐藏的元素(transparents),我希望它们只在用户点击按钮后显示。 (所以"流程"将类似于:View - > VM - > PropertyChanged - > Trigger(?))

2)我需要根据方法的执行结果发出不同的动画(这会检查用户的答案,所以我会有一个"赢家"或者&# 34;失败者"动画)。

所以我的问题是:

1)如何在WinRT应用中解决这些问题?有最好的做法吗?我期待这个项目(http://winrtbehaviors.codeplex.com/),但我不知道它是否适合MvvmCross。

2)我是否可以轻松入睡,因为我知道我会在Android和iOS上找到一种(希望很简单)的方式来重现类似的行为(和动画)?

我希望我能成功解释自己。 感谢大家=)

1 个答案:

答案 0 :(得分:3)

  

我不知道它是否适合MvvmCross。

对于每个单一平台,显示动画的挑战以及将事件挂钩到ViewModel属性和命令的挑战都是特定于平台的问题。

这些都是特定于View的问题,因此您应该能够在每个View层(在各个UI项目中)解决它们。

  

如何在WinRT应用中解决这些问题?有最好的做法吗?

对于WinRT,至少有一个人使用过nuget的行为 - http://slodge.blogspot.co.uk/2013/02/behaviors-for-windows-8-winrt-store.html

  

在Android和iOS上重现类似的行为?

根据我的经验,绑定到Android和iOS UI事件比连接到XAML事件更容易 - 通常您不需要EventToCommand类型适配器,因为Mvx绑定可以直接处理事件。

  

(和动画)

动画归结为每个平台/ UI。 Android和iOS都已经建立了制作动画的方法。

iOS动画特别容易做,特别漂亮 - 你需要一些C#代码才能做到这些,但是这些代码比XAML短得多。


有了所有这些问题,我建议你继续努力......你应该能够在不改变共享核心的情况下实现它们 - 你应该能够一次克服一个平台的挑战。

祝你的轻松/困难睡眠问题好运。