3

我正在开发一个 WPF 应用程序,我很好奇如果有一天我们想通过多点触控来控制它,将这个应用程序重写为 Surface 应用程序需要什么。

是否有可能我们可以重用 WPF 应用程序的大部分并将其顺利转移到 Surface,或者 Surface 完全不同,我们可能必须为 Surface 编写一个全新的 GUI?或者我可以在 Surface 上实际使用 WPF 应用程序吗?正如您可能会说的那样,我对 Surface 完全一无所知 - 所以也请告诉我任何明显的事情!

我们尽我们所能对视图和业务逻辑之间的良好分离的应用程序进行建模 - 使用 MVVM 模式等。但是我们是否需要为表面构建一个全新的 GUI?

4

3 回答 3

4

如果您的目标只是将多点触控添加到普通桌面应用程序中,那么您应该真正关注 Windows 7 中的 .NET 4.0。这样做您可以从现有应用程序开始,然后添加您认为有用的任何多点触控功能。

如果您确实使用 Surface,那么如果进行直接移植,您将在代码中看到的主要更改是将所有内置输入控件更改为 Surface 版本(即 Button 到 s:SurfaceButton)。这需要支持 Surface 的 Contact 输入,它不会激活 Button.Click 等标准控件。

Surface 应用程序还有一些更重要的问题,您无法真正感受到仅在桌面上使用模拟器。首先是多用户体验,不仅包括它支持的大量同时触摸,还包括 UI 的多方向定位。由于 Surface 是水平屏幕,用户可以从任何一侧进入应用程序,并且应用程序本身也可以垂直翻转,具体取决于用户从哪个方向启动应用程序。这可能需要对如何重新设计桌面应用程序的功能进行大量思考。Surface 还具有 1024x768 的固定分辨率,这也可以从为大屏幕制作的动态大小的桌面应用程序进行尴尬的过渡。

于 2010-02-13T15:00:10.400 回答
2

如果应用程序仅使用了基本的 WPF 控件,那么理想情况下,您可能需要移植到 Surface 的更改非常小。如果您已经在代码中执行了一些 Mousevents,只需将所有典型的 WPF 控件替换为相应的 Surfacecontrols 并添加适当的 Contact 事件。

当然,基于您在 Surface 上可能需要的特殊 MultiTouch 体验,XAML 样式和布局可能会有很大不同,但是当您遵循正确的 MVVM 时,您不需要更改任何 C# 代码以及项目的所有 UserControl 结构。因此,请确保将项目设置为ViewViewModel,以便您可以让 SurfaceView 和 WPFView 项目引用相同的 MVVM dll。

于 2010-02-13T00:58:22.930 回答
1

WPF 是目前 Surface 开发的主要平台。

Microsoft Surface 博客有一篇关于与 Surface 开发相关的 WPF 资源的精彩文章。

于 2010-02-12T21:38:53.553 回答