我正在研究一个WPF应用程序,如果我们想在某天通过多点触控来控制它,我很想知道如何将这个应用程序重写到Surface应用程序。
我们是否可以重用我们的WPF应用程序的大部分并将其平滑地传输到Surface,或者Surface是否完全不同,我们可能必须为Surface编写一个全新的GUI?或者我可以在Surface上实际使用WPF应用程序吗?你可能会告诉我,我对Surface的确没有任何线索 - 所以请告诉我任何明显的事情!
我们尽我们所能为应用程序建模,并在View和业务逻辑之间实现良好的分离 - 使用MVVM模式等。但我们是否需要为表面构建一个全新的GUI?
答案 0 :(得分:3)
如果您的目标只是为普通桌面应用程序添加多点触控,那么您应该真正关注Windows 7中的.NET 4.0。这样做可以从现有应用程序开始,只需添加任何多点触控功能即可找到有用的。
如果你去了Surface,你在代码中看到的主要更改是,如果执行直接端口将所有内置输入控件更改为Surface版本(即Button to s:SurfaceButton)。这需要完成以支持Surface的Contact输入,这些输入不会激活Button.Click等标准控件。
Surface应用程序有一些更重要的问题,您无法真正感受到只是在桌面上使用模拟器。首先是多用户体验,不仅包括它支持的大量同时触摸,还包括UI的多方向定位。由于Surface是横向屏幕,因此用户可以从任何一侧进入应用程序,并且应用程序本身也可以根据用户启动应用程序的方向垂直翻转。这可能需要考虑如何重新设计桌面应用程序的功能。 Surface还具有1024x768的固定分辨率,这也可以为大屏幕的动态大小的桌面应用程序带来尴尬的过渡。
答案 1 :(得分:2)
如果应用程序仅使用了基本的WPF控件,那么理想情况下,您可能需要移植到Surface的更改非常少。只需要将所有典型的WPF控件替换为相应的Surfacecontrols,并添加适当的Contact事件(如果您已经在代码中执行了一些Mousevents)。
基于Surface可能需要的特殊MultiTouch体验,XAML样式和LayOut可能完全不同,但是当您遵循适当的MVVM时,您不需要更改任何C#代码以及项目的所有UserControl结构。因此,请确保将项目设置为 View 和 ViewModel ,以便您可以使用引用相同MVVM dll的SurfaceView和WPFView项目。
答案 2 :(得分:1)
WPF是Surface开发的主要平台。
Microsoft Surface博客在WPF resources related to Surface development上有一篇很棒的文章。