[MS Surface] 关于程序如何在non-Surface的multi-Touch设备上运行和使用

MS Surface SDK 是基于WPF的NUI开发环境,在用户界面的开发方面有很大的优势,不过一台Surface table对于普通开发者来说实在是有点贵,如果可以在一些普通的HID(Human Interface Device)触控屏幕上使用就能节约很多银子了。

1. 没有触控屏幕只有鼠标的时候

  听我导师说可以装两个鼠标用,不过感觉难受,还好微软有配套的Input Simulator,可以用这个模拟各种输入,甚至条形码(Surface的一大特色就是对物理物体的识别)。

2. 有触控屏幕的时候

  前一段老板买了一批Dell ST2220T,但是后来发现Surface 2.0写出来的程序在这个屏幕上不能识别触控操作,后来发现别人1.5 SDK写出来的居然可以用,才开始去找解决方案。

  解决方法:Touchtech Surface Community Edition

  拷贝这两个文件到project文件夹下,然后VS中add existing project -> 分别添加这两个project到自己的项目中

  

  

  之后将两个project加入references

  

  

  在主窗口中添加

xmlns:ts="http://schemas.touchtech.se/surface/2011"

  并将主窗口的 s:SurfaceWindow修改为 ts:OptimizedSurfaceWindow, 具体如下:

  

  之后打开App.xaml.cs,在class App 中添加如下代码,记得添加using Touchtech.Surface; 

protected override void OnStartup(StartupEventArgs e)
        {
            // Suppress Surface Input if running on Surface hardware
            SurfaceEnvironmentHelper.TrySuppressSurfaceInputOnNonSurfaceHardware();
            base.OnStartup(e);
        }

 

  最后在SurfaceWindow.cs中

  将SurfaceWindow class的base class修改为OptimizedSurfaceWindow,添加 using Touchtech.Surface.Presentation.Controls; using Touchtech.Surface; 

public partial class SurfaceWindow1 : OptimizedSurfaceWindow

  现在模板就已经建好了,现在就可以按照往常的方式写代码的,编译出的程序可以在普通touch屏幕上正常使用,但是由于我这台Dell的最多只支持两个touch point,所以用户体验和Sur40相比还是差了很多。

  刚才的模板可以在这里下载:https://skydrive.live.com/redir?resid=71FA911C9B39086F!116

 

posted @ 2012-06-05 14:15  Frank Qin  阅读(838)  评论(0编辑  收藏  举报